actorID 로 식별되는 룸 내의 "플레이어"를 요약 합니다. More...
Inherits IComparable< PhotonPlayer >, IComparable< int >, IEquatable< PhotonPlayer >, and IEquatable< int >.
Public Member Functions | |
PhotonPlayer (bool isLocal, int actorID, string name) | |
PhotonPlayer 인스턴스를 생성 합니다. More... | |
override bool | Equals (object p) |
PhotonPlayer 를 비교 합니다. More... | |
override int | GetHashCode () |
void | SetCustomProperties (Hashtable propertiesToSet, Hashtable expectedValues=null, bool webForward=false) |
이 플레이어의 커스텀 프로퍼티를 신규/갱신된 key-value 로 갱신합니다. More... | |
PhotonPlayer | Get (int id) |
PhotonPlayer | GetNext () |
PhotonPlayer | GetNextFor (PhotonPlayer currentPlayer) |
PhotonPlayer | GetNextFor (int currentPlayerId) |
int | CompareTo (PhotonPlayer other) |
int | CompareTo (int other) |
bool | Equals (PhotonPlayer other) |
bool | Equals (int other) |
override string | ToString () |
PhotonPlayer 를 간략하게 요약한 문자열. 이름 또는 playerID 와 플레이어의 마스터 클라이언트가 포함됩니다. More... | |
string | ToStringFull () |
PhotonPlayer 를 문자열로 정리한 것 : player.ID, 이름과 이 사용자의 커스텀 프로퍼티가 포함되어 있습니다. More... | |
Static Public Member Functions | |
static PhotonPlayer | Find (int ID) |
지정한 플레이어를 id 로 찾음 More... | |
Public Attributes | |
readonly bool | IsLocal = false |
각 클라이언트에서 하나의 플레이어만이 제어 됩니다. 다른 플레이어들은 로컬이 아닙니다. More... | |
object | TagObject |
레퍼런스를 저장 하며 "어떤 플레이어에 의한" 것인지 파악 할 때 유용합니다. More... | |
Properties | |
int | ID [get] |
이 플레이아의 actorID More... | |
string | NickName [get, set] |
플레이어의 별명. More... | |
string | UserId [get, set] |
플레이어의 UserId. RoomOptions.publishUserId = true 로 설정 되어 룸이 생성 되었을 때 사용 할 수 있습니다. More... | |
bool | IsMasterClient [get] |
이 플레이어가 현재 룸에서 마스터 클라이언트이면 true 입니다. More... | |
bool | IsInactive [get, set] |
룸의 PlayerTTL 이 >0 일 때 룸내의 플레이어들이 비활성화 될 수 있습니다. 만약 true 이면 플레이어는 룸에서 발생되는 이벤트를 수신 하지 못하지만 다중에 복귀 할 수 있습니다. More... | |
Hashtable | CustomProperties [get, set] |
읽기 전용 플레어어 커스텀 프로퍼티들. PhotonPlayer.SetCustomProperties 를 통해 설정 합니다. More... | |
Hashtable | AllProperties [get] |
모든 프로퍼티를 가진 Hashtable 을 생성 합니다 (커스텀과 "잘 알려진" 것들). More... | |
string | name [get, set] |
string | userId [get, set] |
bool | isLocal [get] |
bool | isMasterClient [get] |
bool | isInactive [get, set] |
Hashtable | customProperties [get, set] |
Hashtable | allProperties [get] |
actorID 로 식별되는 룸 내의 "플레이어"를 요약 합니다.
각 플레이어는 룸에서 유효한 actorId (또는 ID) 를 가지고 있습니다. 서버가 값을 지정 해 주기 전 까지는 -1 입니다. 각 클라이언트는 룸에 참여 하기 전에도 SetCustomProperties 를 통하여 플레이어의 커스텀 프로퍼티들을 설정 할 수 있습니다. 룸 프로퍼티들은 룸에 참여 할 때 동기화 됩니다.
PhotonPlayer.PhotonPlayer | ( | bool | isLocal, |
int | actorID, | ||
string | name | ||
) |
PhotonPlayer 인스턴스를 생성 합니다.
isLocal | 로컬 피어의 플레이어인지 판단 (또는 원격 플레이어인지). |
actorID | 현재 룸 안에서 이 플레이어의 ID 또는 ActorNumber (룸에서 각 플레이어를 식별하기 위한 숏컷) |
name | 플레이어 이름 ("잘 알려진 프로퍼티"). |
int PhotonPlayer.CompareTo | ( | PhotonPlayer | other | ) |
int PhotonPlayer.CompareTo | ( | int | other | ) |
override bool PhotonPlayer.Equals | ( | object | p | ) |
PhotonPlayer 를 비교 합니다.
bool PhotonPlayer.Equals | ( | PhotonPlayer | other | ) |
bool PhotonPlayer.Equals | ( | int | other | ) |
|
static |
지정한 플레이어를 id 로 찾음
ID | ActorID |
PhotonPlayer PhotonPlayer.Get | ( | int | id | ) |
override int PhotonPlayer.GetHashCode | ( | ) |
PhotonPlayer PhotonPlayer.GetNext | ( | ) |
PhotonPlayer PhotonPlayer.GetNextFor | ( | PhotonPlayer | currentPlayer | ) |
PhotonPlayer PhotonPlayer.GetNextFor | ( | int | currentPlayerId | ) |
void PhotonPlayer.SetCustomProperties | ( | Hashtable | propertiesToSet, |
Hashtable | expectedValues = null , |
||
bool | webForward = false |
||
) |
이 플레이어의 커스텀 프로퍼티를 신규/갱신된 key-value 로 갱신합니다.
룸내의 모든 플레이어들이 사용할 수 있는 키-값 집합(Hanstable) 의 커스텀 프로퍼티들 룸 또는 개별 플레이어들과 관련 될 수 있고 관심이 있는 무엇인가의 현재 값만 유용 합니다. 예를 들면: 룸의 지도. 모든 키들은 문자열 이어야 합니다.
Room 과 PhotonPlayer 클래스는 모두 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 파라미터들은 무시 됩니다. 오프라인 모드에서, 로컬 커스텀 프로퍼티들의 값은 즉시 갱신 됩니다(라운드 트립 없이).
propertiesToSet | 설정 할 새로운 프로퍼티들. |
expectedValues | 서버 측에서 체크하기 위한 최소 하나의 프로퍼티 키/값 집합. 키와 값은 반드시 맞아야 합니다. 오프라인 모드에서는 무시 됩니다. |
webForward | WebHook 로 프로퍼티들을 포워드 하기 위해 true 로 설정 합니다. 앱에 정의되어있습니다(대시보드에서) 오프라인 모드에서는 무시됩니다. |
override string PhotonPlayer.ToString | ( | ) |
PhotonPlayer 를 간략하게 요약한 문자열. 이름 또는 playerID 와 플레이어의 마스터 클라이언트가 포함됩니다.
string PhotonPlayer.ToStringFull | ( | ) |
PhotonPlayer 를 문자열로 정리한 것 : player.ID, 이름과 이 사용자의 커스텀 프로퍼티가 포함되어 있습니다.
주의 해서 사용하고 매 프레임에 사용하지 마세요! 매번 호출 마다 커스텀 프로퍼티들을 문자열로 변환 해 줍니다.
readonly bool PhotonPlayer.IsLocal = false |
각 클라이언트에서 하나의 플레이어만이 제어 됩니다. 다른 플레이어들은 로컬이 아닙니다.
object PhotonPlayer.TagObject |
레퍼런스를 저장 하며 "어떤 플레이어에 의한" 것인지 파악 할 때 유용합니다.
예제: 인스턴스를 생성할 때 게임오브젝트 Tag 를 플레이어의 캐릭터에 설정 합니다.
|
get |
모든 프로퍼티를 가진 Hashtable 을 생성 합니다 (커스텀과 "잘 알려진" 것들).
더 자주 사용한다면 캐시되어야 합니다.
|
get |
|
getset |
읽기 전용 플레어어 커스텀 프로퍼티들. PhotonPlayer.SetCustomProperties 를 통해 설정 합니다.
이 Hashtable 의 내용을 변경하지 마세요. SetCustomProperties 과 클래스의 프로퍼티들을 이용하여 값을 변경 합니다. 이것을 사용했을 때 클라이언트는 서버와 같이 값이 동기화 될 것 입니다.
|
getset |
|
get |
이 플레이아의 actorID
|
getset |
룸의 PlayerTTL 이 >0 일 때 룸내의 플레이어들이 비활성화 될 수 있습니다. 만약 true 이면 플레이어는 룸에서 발생되는 이벤트를 수신 하지 못하지만 다중에 복귀 할 수 있습니다.
|
getset |
|
get |
|
get |
이 플레이어가 현재 룸에서 마스터 클라이언트이면 true 입니다.
|
get |
|
getset |
|
getset |
플레이어의 별명.
룸에서 이름을 동기화 하기 위해서 PhotonNetwork.playerName 로 설정 합니다.
|
getset |
플레이어의 UserId. RoomOptions.publishUserId = true 로 설정 되어 룸이 생성 되었을 때 사용 할 수 있습니다.
PhotonNetwork.FindFriends 와 참여가 예상되는 플레이어를 위해 룸의 슬롯을 블럭 할 때 유용합니다(예, PhotonNetwork.CreateRoom 에서).
|
getset |