Photon Unity Networking  v1.81
English | 日本語 | 한국
Public Member Functions | Properties | List of all members
Room Class Reference

이 클래스는 PUN 이 참여하는(또는 참여했던) 룸과 유사합니다. "당신의" 룸을 폐쇄하고 숨길 수 있는 RoomInfo 의 프로퍼티들과는 대조적으로 프로퍼티들은 설정 가능 합니다. More...

Inherits RoomInfo.

Public Member Functions

void SetCustomProperties (Hashtable propertiesToSet, Hashtable expectedValues=null, bool webForward=false)
 현재 룸의 커스텀 프로퍼티들을 새로운/변경된 키-값으로 갱신합니다. More...
 
void SetPropertiesListedInLobby (string[] propsListedInLobby)
 로비에서 사용할 수 있는 프로퍼티들을 정의 할 수 있습니다. 그렇지 않으면 룸을 고르기 위해 모든 프로퍼티들이 필요하게 될 것입니다. More...
 
void ClearExpectedUsers ()
 서버의 슬롯 예약 리스트에서 현재 참여가 예상 되는 모든 사용자들의 제거를 시도 합니다. More...
 
override string ToString ()
 이 룸 인스턴스를 문자열로 요약하여 리턴 해 줍니다. More...
 
new string ToStringFull ()
 좀 더 긴 문자열로 요약하여 리턴 함. 커스텀 프로퍼티 포함. More...
 
- Public Member Functions inherited from RoomInfo
override bool Equals (object other)
 RoomInfo 를 이름으로 비교 합니다. More...
 
override int GetHashCode ()
 Equals 에서 수행 됩니다. 이름의 HashCode 를 이용하여 리턴 합니다. More...
 
override string ToString ()
 단순한 출력 메소드 입니다. More...
 
string ToStringFull ()
 단순한 출력 메소드 입니다. More...
 

Properties

new string Name [get, set]
 룸의 이름. 룸/경계의 유일한 식별자 (로드밸런싱 그룹 별). More...
 
new bool IsOpen [get, set]
 룸에 참여할 수 있는지를 정의 합니다. 로비내의 목록에는 영향이 없지만 열려있지 않으면 룸에 참여는 실패할 것 입니다. 열려있지 않으면, 룸은 무작위 매치메이킹에서 제외됩니다. 레이싱 조건으로 인하여 찾은 경기들은 참여하기전에 닫혀질 수도 있습니다. 간단하게 마스터에 다시연결하여 다른 경기를 찾아주세요. 룸 목록에 표시하고 싶지 않으면 "visible" 프로퍼티를 사용합니다. More...
 
new bool IsVisible [get, set]
 룸이 로비에 나타날 것인지를 정의합니다. 룸이 보이지 않게 생성하거나 보이지 않도록 변경 할 수 있습니다. 룸이 참여할 수 있도록 변경하려면 open 프로퍼티를 사용하세요. More...
 
string[] PropertiesListedInLobby [get]
 로비로 포워딩 되고 나열되는 커스텀 프로퍼티들의 목록입니다. More...
 
bool AutoCleanUp [get]
 플레이어가 떠날 때 모든 (버퍼된)RPC와 인스턴스 생성된 게임오브젝트들을 제거 하기 위하여 룸의 autoCleanUp 여부를 얻습니다. More...
 
new int MaxPlayers [get, set]
 룸의 최대로 참여할 수 있는 플레이어수를 제한 합니다. 이 프로퍼티는 로비에서 볼 수 있습니다. 만약 룸이 가득 차 있으면(players count == maxplayers), 이 룸에 참여는 실패 할 것 입니다. More...
 
new int PlayerCount [get]
 룸 내의 플레이어 수. More...
 
string[] ExpectedUsers [get]
 이 룸에 참여할 것으로 예상되는 사용자의 목록 입니다. 매치메이킹에서 Photon 은 MaxPlayers 내에서 이러한 UserID 들을 위해 슬롯을 블럭 합니다. More...
 
new string name [get, set]
 
new bool open [get, set]
 
new bool visible [get, set]
 
string[] propertiesListedInLobby [get]
 
bool autoCleanUp [get]
 
new int maxPlayers [get, set]
 
new int playerCount [get]
 
string[] expectedUsers [get]
 
- Properties inherited from RoomInfo
bool removedFromList [get, set]
 더 이상 리스트 되지 않는 룸이라고 마크하기 위해 로비 내부적으로 사용됩니다. More...
 
Hashtable CustomProperties [get]
 룸의 커스텀 프로퍼티들의 읽기 전용 "캐시". Room.SetCustomProperties 로 설정 합니다(RoomInfo 클래스에서는 사용 할 수 없습니다). More...
 
string Name [get]
 룸 이름. 룸/게임의 유일한 식별자 (로드밸런싱 그룹별). More...
 
int PlayerCount [get]
 룸 안의 플레이어수를 표시하기 위해 로비에서 내부적으로 사용 됩니다. (내부에 있지 않는 동안). More...
 
bool IsLocalClientInside [get, set]
 이 로컬 클라이언트가 이미 게임에 있거나 게임서버에 참여하려고 하는지에 대한 상태 입니다(로비에서는 항상 false). More...
 
byte MaxPlayers [get]
 룸에 대한 플레이어 제한 인원을 설정합니다. 이 프로퍼티는 로비에서 보여 집니다. 만약 룸이 가득 차 있다면 (players count == maxplayers), 룸에 참여하는 것은 실패 합니다. More...
 
bool IsOpen [get]
 룸에 참여할 수 있는지를 정의 합니다. 로비내의 목록에는 영향이 없지만 열려있지 않으면 룸에 참여는 실패할 것 입니다. 열려있지 않으면, 룸은 무작위 매치메이킹에서 제외됩니다. 레이싱 조건으로 인하여 찾은 경기들은 참여하기전에 닫혀질 수도 있습니다. 간단하게 마스터에 다시연결하여 다른 경기를 찾아주세요. 룸 목록에 표시하고 싶지 않으면 "IsVisible" 프로퍼티를 사용합니다. More...
 
bool IsVisible [get]
 룸이 로비에 나타날 것인지를 정의합니다. 룸은 보이지 않게 생성하거나 보이지 않도록 변경 될 수 있습니다. 룸이 참여할 수 있도록 변경하려면 open 프로퍼티를 사용하세요. More...
 
Hashtable customProperties [get]
 
string name [get]
 
int playerCount [get, set]
 
bool isLocalClientInside [get, set]
 
byte maxPlayers [get]
 
bool open [get]
 
bool visible [get]
 

Additional Inherited Members

- Protected Attributes inherited from RoomInfo
byte maxPlayersField = 0
 프로퍼티의 지원 필드. More...
 
string[] expectedUsersField
 프로퍼티의 지원 필드. More...
 
bool openField = true
 프로퍼티의 지원 필드. More...
 
bool visibleField = true
 프로퍼티의 지원 필드. More...
 
bool autoCleanUpField = PhotonNetwork.autoCleanUpPlayerObjects
 프로퍼티의 지원 필드. GameProperty 가 true 로 설정되지 않는 한 false 입니다.(그렇지 않으면 전송되지 않습니다). More...
 
string nameField
 프로퍼티의 지원 필드. More...
 

Detailed Description

이 클래스는 PUN 이 참여하는(또는 참여했던) 룸과 유사합니다. "당신의" 룸을 폐쇄하고 숨길 수 있는 RoomInfo 의 프로퍼티들과는 대조적으로 프로퍼티들은 설정 가능 합니다.

Member Function Documentation

void Room.ClearExpectedUsers ( )

서버의 슬롯 예약 리스트에서 현재 참여가 예상 되는 모든 사용자들의 제거를 시도 합니다.

이 오퍼레이션은 새로운/다른 사용자 참여와 충돌이 발생 할 수 있습니다. 이 클라이언트가 ClearExpectedUsers 호출 전 또는 후에 참여가 예상되는 사용자들의 목록에 추가 될 수 있습니다.

서버가 성공적인 업데이트를 전송 할 때 이 룸의 expectedUsers 값은 갱신될 것 입니다.

내부: 이 메소드는 룸의 ExpectedUsers 프로퍼티 설정을 wrap up 합니다.

void Room.SetCustomProperties ( Hashtable  propertiesToSet,
Hashtable  expectedValues = null,
bool  webForward = false 
)

현재 룸의 커스텀 프로퍼티들을 새로운/변경된 키-값으로 갱신합니다.

커스텀 프로퍼티들은 키-값 집합(Hashtable) 으로 룸 안의 모든 플레이어가 사용할 수 있습니다. 룸 또는 개별 플레이어들과 연관되어 있을 수 있으며 관심을 가지고 있는 현재 값만 존재 합니다. 예를들어: 룸의 지도 모든 키들은 반드시 문자열 이어야 합니다.

RoomPhotonPlayer 클래스는 모두 SetCustomProperties 메소드가 있습니다. 그리고 두 클래스들은 현재 키-값을 customProperties 를 통해 접근 합니다.

값을 변경 하려면 SetCustomProperties 를 이용하세요. 네트워크 트래픽을 감소시키기 위해서 실제로 변경된 값만 설정 합니다. 새로운 프로퍼티들은 추가되고 기존 값은 갱신됩니다. 제공된 값만 변경 또는 추가 되며 다른 값들은 변경되지 않을 것입니다.

룸의 커스텀 프로퍼티를 삭제 하려면 null 값을 이용 합니다.

로컬에서 SetCustomProperties 는 지연 없이 프로퍼티의 캐시를 갱신 합니다. 다른 클라이언트들은 Photon (서버) 을 통해 맞는 오퍼레이션으로 갱신 되어 집니다.

검토하고 교체 하기

SetCustomProperties 는 서버측에서 검토 후 교체(Check And Swap,CAS)하는 옵션이 있습니다: 예측되는 값들 이어야만 값들이 변경 됩니다. expectedValues 는 propertiesToSet 와 다른 키/값일 수 있습니다. 따라서 키를 체크하고 다른 키의 값을 설정 할 수 있습니다( 체크가 성공 하면).

만약 클라이언트가 프로퍼티들이 잘못되었거나 시간이 지난 것임을 알게 되면 CAS 로 값을 설정 할 수 없습니다. 이것으로 플레이어들이 일관성있게 값을 설정 하는데 유용할 수 있습니다. 예를 들어 모든 플레이어들이 동일한 카드 또는 아이템을 집어 들려고 할때, 한 명만 잡아야 합니다. CAS 를 통해서 첫 번째로 SetProperties 한 플레이어만 서버측에서 수행 하고 다른 플레이어(동시에 전송)들은 실패 하게 됩니다.

서버는 라운드 트립(무엇인가 변경되었다면) 이후 업데이트를 받아 성공적으로 변경 된 값과 customProperties 의 로컬 "캐시"를 브로드캐스트 할 것 입니다.

"webForward"를 할 수 있습니다: Photon 은 어플리케이션에서 정의된 WebHoom 로 변경된 프로퍼티를 전송 할 것 입니다.

오프라인모드

PhotonNetwork.offlineMode 가 true 이면, expectedValues 와 webForward 파라미터들은 무시 됩니다. 오프라인 모드에서, 로컬 커스텀 프로퍼티들의 값은 즉시 갱신 됩니다(라운드 트립 없이).

Parameters
propertiesToSet설정 할 새로운 프로퍼티들.
expectedValues서버 측에서 체크하기 위한 최소 하나의 프로퍼티 키/값 집합. 키와 값은 반드시 맞아야 합니다.오프라인 모드에서는 무시 됩니다.
webForwardWebHook 으로 프로퍼티들을 포워드 하기 위해서 true 로 설정 합니다. 앱에 정의되어있습니다(대시보드에서) 오프라인 모드에서는 무시됩니다.
void Room.SetPropertiesListedInLobby ( string[]  propsListedInLobby)

로비에서 사용할 수 있는 프로퍼티들을 정의 할 수 있습니다. 그렇지 않으면 룸을 고르기 위해 모든 프로퍼티들이 필요하게 될 것입니다.

속도와 안정성을 개선하기 위해 로비로 사용자들이 보낼 수 있는 프로퍼티들의 양을 제한하는 것이 합리적입니다.

Parameters
propsListedInLobby로비로 포워드 할 커스텀룸 프로퍼티 이름들의 배열.
override string Room.ToString ( )

이 룸 인스턴스를 문자열로 요약하여 리턴 해 줍니다.

Returns
룸 인스턴스의 요약.
new string Room.ToStringFull ( )

좀 더 긴 문자열로 요약하여 리턴 함. 커스텀 프로퍼티 포함.

Returns
이 룸 인스턴스의 요약.

Property Documentation

bool Room.AutoCleanUp
get

플레이어가 떠날 때 모든 (버퍼된)RPC와 인스턴스 생성된 게임오브젝트들을 제거 하기 위하여 룸의 autoCleanUp 여부를 얻습니다.

bool Room.autoCleanUp
get
string [] Room.ExpectedUsers
get

이 룸에 참여할 것으로 예상되는 사용자의 목록 입니다. 매치메이킹에서 Photon 은 MaxPlayers 내에서 이러한 UserID 들을 위해 슬롯을 블럭 합니다.

Photon 에서 이에 상응 하는 것을 "슬롯 예약"이라고 하며 문서 페이지에서 찾을 수 있습니다. PhotonNetwork 메소드 안에서 예상되는 플레이어들을 정의 합니다:CreateRoom, JoinRoom 과 JoinOrCreateRoom

string [] Room.expectedUsers
get
new bool Room.IsOpen
getset

룸에 참여할 수 있는지를 정의 합니다. 로비내의 목록에는 영향이 없지만 열려있지 않으면 룸에 참여는 실패할 것 입니다. 열려있지 않으면, 룸은 무작위 매치메이킹에서 제외됩니다. 레이싱 조건으로 인하여 찾은 경기들은 참여하기전에 닫혀질 수도 있습니다. 간단하게 마스터에 다시연결하여 다른 경기를 찾아주세요. 룸 목록에 표시하고 싶지 않으면 "visible" 프로퍼티를 사용합니다.

new bool Room.IsVisible
getset

룸이 로비에 나타날 것인지를 정의합니다. 룸이 보이지 않게 생성하거나 보이지 않도록 변경 할 수 있습니다. 룸이 참여할 수 있도록 변경하려면 open 프로퍼티를 사용하세요.

new int Room.MaxPlayers
getset

룸의 최대로 참여할 수 있는 플레이어수를 제한 합니다. 이 프로퍼티는 로비에서 볼 수 있습니다. 만약 룸이 가득 차 있으면(players count == maxplayers), 이 룸에 참여는 실패 할 것 입니다.

new int Room.maxPlayers
getset
new string Room.Name
getset

룸의 이름. 룸/경계의 유일한 식별자 (로드밸런싱 그룹 별).

new string Room.name
getset
new bool Room.open
getset
new int Room.PlayerCount
get

룸 내의 플레이어 수.

new int Room.playerCount
get
string [] Room.PropertiesListedInLobby
get

로비로 포워딩 되고 나열되는 커스텀 프로퍼티들의 목록입니다.

string [] Room.propertiesListedInLobby
get
new bool Room.visible
getset