센로그

[PUN2] Room 생성 및 참가 / RoomOptions / Room 관련 정보 확인 본문

게임/PUN2(Unity)

[PUN2] Room 생성 및 참가 / RoomOptions / Room 관련 정보 확인

seeyoun 2023. 7. 24. 13:21

◆ Room 생성 및 참가

  • PhotonNetwork.CreateRoom(string roomName, RoomOptions roomOptions)
    : roomOptions을 반영한 룸 생성
  • PhotonNetwork.JoinRoom(string roomName)
    : roomName 이름의 룸에 접속
  • PhotonNetwork.JoinRandomRoom()
    : 생성되어있는 룸들 중에서 랜덤한 룸에 접속
  • PhotonNetwork.JoinOrCreateRoom(string roomName, RoomOptions roomOptions, TypedLobby typedLobby, string expectedUsers)
    : 룸에 참가하되, 해당 룸이 없으면 새로 생성해서 참가
  • PhotonNetwork.JoinRandomOrCreateRoom(Hashtable expectedCustomRoomProperties, byte expectedMaxPlayers, MatchmakingMode matchingType, TypedLobby typedLobby, string sqlLobbyFilter, string roomName, RoomOptions roomOptions, string[] expectedUsers)
    : 생성되어있는 룸들 중에서 랜덤으로 참가하되, 참가할 수 있는 방이 없으면 새로 생성해서 참가
  • PhotonNetwork.ReJoinRoom(string roomName)
    : 해당 룸에서 나간 후 재접속
  • PhotonNetwork.LeaveRoom()
    : 룸에서 나감

 


◆ Room 관련 콜백

  • void OnCreatedRoom()
    : 룸 생성시 로컬 콜백
  • void OnJoinedRoom()
    : 룸 입장시 로컬 콜백
  • void OnLeftRoom()
    : 룸 퇴장시 로컬 콜백
  •  void OnJoinRandomFailed(short returnCode, string message)
    : 랜덤 룸 입장이 실패한 경우 로컬 콜백.
    returnCode - 에러 코드. message - 에러 메세지
  • void OnPlayerEnteredRoom(Player newPlayer)
    : 룸에 새 플레이어가 입장할 시 원격 콜백
  • void OnPlayerLeftRoom(Player otherPlayer)
    : 어떤 플레이어가 룸을 퇴장할 시 원격 콜백
  • void OnRoomListUpdate(List<RoomInfo> roomList)
    : 룸 리스트 업데이트시 원격 콜백

 


◆ RoomOptions

룸의 설정을 정의할 수 있는 클래스.

말 그대로 룸을 만들 때 사용할 옵션이다.

 

using Photon.Realtime; 필요.

 

RoomOptions ro = new RoomOptions();

RoomOptions 객체의 속성을 조정함으로써 RoomOption을 정의할 수 있다.

 

다음과 같은 속성들이 존재한다.

  • MaxPlayers : 최대 접속자 수
  • IsOpen : 룸의 오픈 여부(룸 입장 허용 여부)
  • IsVisible : 로비에서 노출 여부
  • CustomRoomProperties : 룸의 커스텀 프로퍼티(직접 룸에 필요한 옵션을 정의. Hashtable 형식)

 

PhotonNetwork.CreateRoom(string roomName, RoomOptions roomOptions)

를 통해 해당 옵션을 적용한 방을 만들 수 있다.

 


◆ Room 관련 정보 확인

  • PhotonNetwork.InRoom : 룸에 들어와있는지, 아닌지 체크
  • PhotonNetwork.CountOfRooms : 현재 방 개수 체크
  • PhotonNetwork.CountOfPlayersInRooms : 현재 모든 방들에 접속해있는 플레이어 수 체크 (로비 제외)
  • PhotonNetwork.CurrentRoom : 현재 룸의 Name, PlayerCount, MaxPlayer, IsOpen, IsVisible ..등에 접근 가능.
    (ex: Debug.Log(PhotonNetwork.CurrentRoom.Maxplayers))

'게임 > PUN2(Unity)' 카테고리의 다른 글

[PUN2] IPunObservable  (0) 2023.07.24
[PUN2] Player 클래스  (0) 2023.02.15
[PUN2] PunRPC / PV.RPC  (0) 2023.01.20
[PUN2] Custom Property (커스텀 프로퍼티)  (0) 2023.01.20
[PUN2] PhotonView - Transform, Animator, Rigidbody  (0) 2023.01.20
Comments