1. 애셋스토어에서 PUN2->Unity 프로젝트로 가져오기
https://assetstore.unity.com/packages/tools/network/pun-2-free-119922
포톤 웹사이트 가입하고, '새 어플리케이션 만들기' 선택
https://dashboard.photonengine.com/ko-KR/
- Realtime 선택, 이름 입력, '작성하기' 선택
20 CCU 네트워크 생성, 20명까지 무료라는거 같다.
'어플리케이션 ID를 복사', 유니티에 임포트한 직후 PUN Wizard가 나오는데 AppID란에 입력해준다.
위자드창을 닫았다면 Window->Photon Unity Networking에 있다.
Setup Project 선택.
씬을 아래와 같이 구성한다.
ConnectionStatus(TextLabel), ID(InputField), Connect(Button), ConnectionManager(EmptyObject)
혹시 백그라운드 기본 스카이박스를 지우고 싶다면 아래 유튜브 참고.
https://www.youtube.com/watch?v=x_a9ItYXBv4
ConnectionManager에 연결할 ConnectionManager.cs 스크립트 만들기
using Photon.Pun;
using UnityEngine.UI;
public class ConnectionManager : MonoBehaviourPunCallbacks
{
public Text ConnectionStatus;
public Text IDtext;
public Button connetBtn;
void Start()
{
}
void Update()
{
ConnectionStatus.text = PhotonNetwork.NetworkClientState.ToString();
}
public void Connect() => PhotonNetwork.ConnectUsingSettings();
// Update is called once per frame
public override void OnConnectedToMaster()
{
print("서버 접속 완료");
PhotonNetwork.LocalPlayer.NickName = IDtext.text;
PhotonNetwork.JoinLobby();
}
public override void OnJoinedLobby()
{
print("로비 접속 완료");
}
}
- PUN2 네트워크를 위한 콜백을 사용하기 위해선 MonoBehaviourPunCallbacks 클래스를 상속받도록 구현.
- Update()함수에서 실시간 네트워크 연결 상황 확인 구현
- Connect() 함수는 Connect()버튼이 눌렸을 때 불리는 함수로 구현. 클릭시 PhotonNetwork를 실제 연결한다.
- 각 상황별 콜백, OnConnectedToMaster(), 서버 접속 이후 호출// OnJoinedLobby() 로비 접속 이후 출력.
- 현재 구현하는 샘플은 컨넥트와 동시에 입력받은 닉네임으로 설정 뒤 로비도 접속되게 구현.
스크립트는 ConnectionManager(EmptyObject)에 드래그로 연결. 연결뒤 public 프로퍼티 역시 드래그로 연결해준다.
Connect 버튼의 클릭 콜백엔 ConnectionManager 연결 후, Connect함수 등록
아래와 같이 볼 수 있다.
연결 전
연결 후
'Software Development > Unity' 카테고리의 다른 글
이 unity 프로젝트는 visual studio tools for unity용으로 생성되지 않았습니다 (0) | 2022.03.01 |
---|---|
유니티 몇가지 팁 (0) | 2022.02.26 |
유니티 3D 간보기 - 골드메탈 3D강좌:코루틴으로 근접공격 구현, Trail Renderer 사용. (0) | 2022.02.06 |
유니티 3D 간보기 - 골드메탈 3D강좌:아이템 처리/수류탄 장착 구현 (0) | 2022.02.06 |
유니티 3D 간보기 - 골드메탈 3D강좌:아이템 먹기/장착 (0) | 2022.02.06 |