네트워크 콘텐츠 제작

[Photon Pun2] 세팅하기 , 서버 접속

노재두내 2024. 10. 23. 13:53

1. 포톤 

 

포톤 사이트에 접속 -> 로그인 -> 관리 화면으로 이동 -> 새 애플리케이션 만들기

멀티플레이어 선택, Pun 선택, 프로젝트 명 작성 

생성완료


2. 유니티

 

유니티 프로젝트 생성 

 

Unity asset store에서 Photon Pun2 - Free 열기

 

pakage manager -> Download -> Import

 

위에 생성됐던 AppId 입력 -> Setup Project -> Close

 

잘 적용된것을 확인할 수 있다.

 


코드 작성해서 접속이 잘 되는지 확인해보기

using Photon.Pun;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

//클래스 상속
public class GameManager : MonoBehaviourPunCallbacks
{
    //포톤 게임 버전을 설정하기 위한 변수, 같은 게임 버전끼리 공유가 된다.이 클라이언트의 버전 번호입니다. 사용자는 gameVersion으로 서로 구분됩니다(이를 통해 획기적인 변경이 가능함).
    private readonly string version = "1.0";
    private string userId = "syyeom1002";

    private void Awake()
    {
        //마스터 client와 일반 client의 레벨을 동기화 할지 결정한다. true일 시, 마스터 client에서 레벨 변경 시 모든 client들이 자동으로 동일한 레벨을 로드한다.
        PhotonNetwork.AutomaticallySyncScene = true;
        PhotonNetwork.GameVersion = this.version;
        PhotonNetwork.NickName = this.userId;
        Debug.Log(PhotonNetwork.NickName);
        //Photon Cloud에 연결 되는 시작 지점
        PhotonNetwork.ConnectUsingSettings();
    }

    public override void OnConnectedToMaster()
    {
        Debug.Log("마스터 서버에 접속");
        Debug.LogFormat("PhotonNetwork.InLobbyOnConnectedToMaster: {0}", PhotonNetwork.InLobby);//ture/false 값 리턴
        PhotonNetwork.JoinLobby();
    }

    public override void OnJoinedLobby()
    {
        Debug.Log("로비 접속");
        Debug.LogFormat("PhotonNetwork.InLobbyOnJoinedLobby: {0}", PhotonNetwork.InLobby);

        //만들어져있는 임의 룸에 입장을 시도, 룸이 없다면 Failed 
        PhotonNetwork.JoinRandomRoom();
    }

    public override void OnJoinRandomFailed(short returnCode, string message)
    {
        Debug.LogFormat("{0}, {1}", returnCode, message);
    }
}

실행순서 확인하기 위해 모든 메서드에 로그 출력 코드를 작성했다.

 

결과

로비 접속 전에는 False였다가 로비 접속 후에는 True가 출력되는 모습