개발/Unity

Unity & PUN2 연결하기 기초 (포톤 클라우드 - 리얼타임)

huiyu 2022. 2. 26. 13:50

1. 애셋스토어에서 PUN2->Unity 프로젝트로 가져오기

https://assetstore.unity.com/packages/tools/network/pun-2-free-119922

 

PUN 2 - FREE | 네트워크 | Unity Asset Store

Get the PUN 2 - FREE package from Exit Games and speed up your game development process. Find this & other 네트워크 options on the Unity Asset Store.

assetstore.unity.com

포톤 웹사이트 가입하고, '새 어플리케이션 만들기' 선택

https://dashboard.photonengine.com/ko-KR/

 

글로벌 크로스 플랫폼 실시간 게임 개발 | Photon Engine

Sign In 아직 계정이 없으신가요? 회원 등록은 여기를 클릭

id.photonengine.com

- 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함수 등록

아래와 같이 볼 수 있다.

연결 전

연결 후

728x90
반응형