1. 포톤 접속
Photon Network Class 공식문서
- 서버 설정
GameVersion : 게임버전에 따라서 사람들을 매칭시켜줍니다.
SendRate : 초당 몇 번 Package를 전송하는지 횟수 입니다.
SerializationRate : 초당 몇 번 OnPhotonSerialize 이 실행하는지 횟수 입니다.
AutomaticallySyncScene : true 일 시, PhotonNetwork.LoadLevel 을 사용 시에 마스터 클라이언트는 모든 참가자를 동일한 레벨로 자동으로 넘어가게 해줍니다.
ConnectUsingSettings() : Photon Editer에 설정된 값대로 포톤 사용자들을 서버에 연결시켜 줍니다.
- 방 설정
PhotonNetwork.LocalPlayer.NickName : 플레이어의 닉네임을 설정합니다.
roomOptions.CleanupCacheOnLeave: 플레이어가 방 나갈시, 나간 플레이어 이벤트를 실행하지 못하게 해줍니다.
roomOptions.CustomRoomProperties = new ExitGames.Client.Photon.Hashtable() { { "userSex", userSex } };
: 룸의 프로퍼티를 설정하는 과정이며, Hashtable 값으로 {"key name", value} 로 설정됩니다.
roomOptions.CustomRoomPropertiesForLobby: 이 key값에 해당하는 동일한 프로퍼티에만 접속할 수 있습니다.
PhotonNetwork.JoinRandomOrCreateRoom() : 방 참가를 시도하고, 실패하면 직접 생성하여 참가합니다.
OnPlayerEnteredRoom () : 포톤 콜백함수로, 플레이어가 방에 참가시에 실행되는 함수입니다.
PhotonNetwork.CurrentRoom.PlayerCount : 현재 참가한 방의 플레이어의 수입니다.
PhotonNetwork.CurrentRoom.MaxPlayers : 현재 참가한 방의 플레이어 최대 수 입니다.
PhotonNetwork.LoadLevel("scene 명") : 마스터 클라이언트가 방에 참가한 모든 플레이어들을 특정 Scene을 로드해줍니다
+ 추가사항
PhotonNetwork.LeaveRoom() : 플레이어를 방에서 나가게 해줍니다.
2. 게임 시
- 플레이어 프리팹 스폰
플레이어를 생성하는 경우, PhotonNetwork.Instantiate("프리팹 명", postion, rotation) 을 사용합니다.
이때 주의할점은 스폰하고자 하는 플레이어 캐릭터가 Resource 명의 폴더안에 프리팹으로 되어있어야 합니다.
** 이때 서로 동기화 하고 싶은 오브젝트 안에는 Photon View 컴포넌트를 꼭 꼭 넣어줍시다.
PhotonView 컴포넌트를 저는 PV로 명명하였습니다.
Public PhotonView PV;
PV.RPC("RPC 함수명", 타겟, 파라미터들)을 사용하여 [PunRPC]로 된 함수를 실행시킬 수 있습니다.