네트워크 콘텐츠 제작
[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가 출력되는 모습