このクラスは、PUNで入室できる(入室した)Roomをそのまま反映します。 プロパティは、RoomInfoのプロパティとは違い、設定可能です。また「自分の」Roomを閉めたり隠すことができます。 More...
Inherits RoomInfo.
Public Member Functions | |
void | SetCustomProperties (Hashtable propertiesToSet, Hashtable expectedValues=null, bool webForward=false) |
現在のルームのカスタムプロパティを新しい/更新されたキー値で更新します。 More... | |
void | SetPropertiesListedInLobby (string[] propsListedInLobby) |
ルームを選択するためにすべてのプロパティを必要としない場合、ロビーで利用可能なプロパティを定義できるようにします。 More... | |
void | ClearExpectedUsers () |
サーバのSlot Reservationリストから、すべての現在予定しているユーザーを削除しようとします。 More... | |
override string | ToString () |
このRoomインスタンスに関する概要を文字列として返します。 More... | |
new string | ToStringFull () |
このRoomインスタンスに関する概要を、独自プロパティも含む、より長い文字列で返します。 More... | |
Public Member Functions inherited from RoomInfo | |
override bool | Equals (object other) |
RoomInfoを(名前で)比較可能にします。 More... | |
override int | GetHashCode () |
名前のHashCodeを返り値として使い、Equalsを追加します。 More... | |
override string | ToString () |
単純な表示メソッド More... | |
string | ToStringFull () |
単純な表示メソッド More... | |
Properties | |
new string | name [get, set] |
Room名。Room/対戦の(ロードバランサーの1グループあたりの)一意な識別名。 More... | |
new bool | IsOpen [get, set] |
Roomが入室可能かどうかを決めます。 これはロビーでの一覧には反映されませんが、Room入室はRoomが閉まっていれば失敗します。 Roomが閉まっているとき、そのRoomはランダム・マッチメイキングに出てこなくなります。 競合状態のため、見つけた対戦が入室前に閉まってしまうことがあります。 そのときは単純にマスターに再接続して他を探してください。 "visible"プロパティを使うと、Roomを一覧に含めないようにできます。 More... | |
new bool | IsVisible [get, set] |
Roomがロビーで一覧に追加されるかどうかを決めます。 Roomは、一覧に載らないように作成することも、あとで一覧に載るよう変更もできます。 Roomを入室可能に変えるには、openプロパティを使ってください。 More... | |
string[] | PropertiesListedInLobby [get] |
独自プロパティの一覧。これはロビーに転送されて、そこで一覧表示されます。 More... | |
bool | AutoCleanUp [get] |
プレイヤーが退室したとき、RoomがautoCleanUpを使うと、(バッファリングされた)RPCをすべて削除してGameObjectからインスタンス作成します。 More... | |
new int | MaxPlayers [get, set] |
このRoomのプレイヤー数の上限を設定します。このプロパティはロビーでも表示されます。 もしRoomが満員(players count == maxplayers)なら、このRoomに入室するのは失敗します。 More... | |
new int | PlayerCount [get] |
このRoomにいるプレイヤー数を数えます。 More... | |
string[] | ExpectedUsers [get] |
このルームに参加することが予定されているユーザーのリスト。マッチメイキングの際、PhotonはMaxPlayersから各UserIDに対してスロットをブロックします。 /// More... | |
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] |
ロビーで内部的に使用されます。リストに載らなくなったRoomを記録します。 More... | |
Hashtable | CustomProperties [get] |
Room独自プロパティの読み込み専用「キャッシュ」。Room.SetCustomPropertiesを通して設定します。(RoomInfoクラスは使えません!) More... | |
string | name [get] |
Room名。Room/対戦の(ロードバランサーの1グループあたりの)一意な識別名。 More... | |
int | PlayerCount [get] |
ロビー内で、内部的に使用されます。Room内の(自分を含めない)プレイヤー数。 More... | |
bool | IsLocalClientInside [get, set] |
ローカルクライアントがすでにゲーム中か、まだゲームサーバーでゲームに参加しようとしているか、を示します。(ロビー内では常にfalseです) More... | |
byte | MaxPlayers [get] |
このRoomのプレイヤー数の上限を設定します。このプロパティはロビーでも表示されます。 もしRoomが満員(players count == maxplayers)なら、このRoomに入室するのは失敗します。 More... | |
bool | IsOpen [get] |
Roomが入室可能かどうかを決めます。 これはロビーでの一覧には反映されませんが、Room入室はRoomが閉まっていれば失敗します。 Roomが閉まっているとき、そのRoomはランダム・マッチメイキングに出てこなくなります。 競合状態のため、見つけた対戦が入室前に閉まってしまうことがあります。 そのときは単純にマスターに再接続して他を探してください。 "IsVisible"プロパティを使うと、Roomを一覧に含めないようにできます。 More... | |
bool | IsVisible [get] |
Roomがロビーで一覧に追加されるかどうかを決めます。 Roomは、一覧に載らないように作成することも、あとから一覧に載らないよう変更もできます。 Roomを入室可能に変えるには、openプロパティを使ってください。 More... | |
Hashtable | customProperties [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... | |
このクラスは、PUNで入室できる(入室した)Roomをそのまま反映します。 プロパティは、RoomInfoのプロパティとは違い、設定可能です。また「自分の」Roomを閉めたり隠すことができます。
void Room.ClearExpectedUsers | ( | ) |
サーバのSlot Reservationリストから、すべての現在予定しているユーザーを削除しようとします。
このオペレーションは、新規/他のユーザーが参加すると際に競合する可能性があるので注意してください。 このクライアントがClearExpectedUsersを呼ぶ前または後に予定しているユーザーのリストにユーザーを追加する可能性があります。
このルームのexpectedUsers値は、サーバが正常な更新を送信するときに更新されます。
内部構造:このメソッドは、ルームのExpectedUsersプロパティの設定をラップします。
void Room.SetCustomProperties | ( | Hashtable | propertiesToSet, |
Hashtable | expectedValues = null , |
||
bool | webForward = false |
||
) |
現在のルームのカスタムプロパティを新しい/更新されたキー値で更新します。
カスタムプロパティは、ルーム内のすべてのプレイヤーに利用可能なキーと値のセット(Hashtable)です。 ルームや個々のプレイヤーに関連させることができ、何かの現在値のみが必要な場合に有用です。例:ルームのマップ。
キーはすべて文字列でなければなりません。
RoomとPhotonPlayerクラスにはどちらもSetCustomPropertiesメソッドがあります。 また、どちらのクラスもcustomPropertiesで現在のキー値へのアクセスを提供します。
値を変更する際は常にSetCustomPropertiesを使用してください。 値を変更する際は常にSetネットワークトラフィックを削減するには、実際に変更された値のみを設定します。CustomPropertiesを使用してください。 新しいプロパティが追加され既存の値が更新されます。 他の値は変更されないので、変更または新しく追加された値のみを提供するようにしてください。
このルームの名前を持つ(カスタム)プロパティを削除するには、値としてnullを使用します。
ローカルでは、SetCustomPropertiesは遅滞なくそのキャッシュを更新します。 他のクライアントは適切なオペレーションにより、Photon(サーバ)を介して更新されます。
b>チェックおよびスワップ
SetCustomPropertiesには、サーバ側のチェック・アンド・スワップ(CAS)を実行するオプションがあります: 期待値が正しい場合のみ、値が更新されます。 expectedValuesはpropertiesToSetとは異なるキー/値にすることができます。キーを確認し別のキーの値を設定することができます(チェックが成功した場合)。 プロパティに対するクライアントの知識が間違っているか古い場合は、CASを使用して値を設定することができません。 これはプレイヤーが同時に値の設定を行うことを防ぐことができます。 例:すべてのプレイヤーがカードやアイテムを拾おうとしようとしても、一人のみが拾えるようにする必要があります。 CASでは、最初のsetPropertiesのみがサーバー側で実行され、他(同時に送信された)は失敗します。
サーバは正常に変更された値をブロードキャストし、customPropertiesのローカル「キャッシュ」は往復後のみ更新されます(変更が加えられた場合)。
「webForward」を行うことができます:Photonは、アプリケーションのために定義されたWebHookに変更されたプロパティを送信します。 OfflineMode
PhotonNetwork.offlineModeがtrueの間はexpectedValuesとwebForwardパラメータは無視されます。 OfflineModeでは、ローカルのcustomPropeties値は直ちに更新されます(往復せずに)。
propertiesToSet | 設定される新しいプロパティ。 |
param name = "expectedValues">サーバ側をチェックするために最低1つのプロパティ キー/値。キーと値は正しくなければなりません。 OfflineModeでは無視されます。
webForward | 設定されたプロパティをこのアプリに定義された(ダッシュボードで)WebHookに転送するためにtrueに設定。OfflineModeでは無視されます。 |
void Room.SetPropertiesListedInLobby | ( | string[] | propsListedInLobby | ) |
ルームを選択するためにすべてのプロパティを必要としない場合、ロビーで利用可能なプロパティを定義できるようにします。
速度と安定性を向上できるので、ロビー内のユーザーに送信するプロパティの量を制限することには意味があります。
propsListedInLobby | ロビーに転送するカスタムルームプロパティ名の配列。 |
override string Room.ToString | ( | ) |
このRoomインスタンスに関する概要を文字列として返します。
new string Room.ToStringFull | ( | ) |
このRoomインスタンスに関する概要を、独自プロパティも含む、より長い文字列で返します。
|
get |
プレイヤーが退室したとき、RoomがautoCleanUpを使うと、(バッファリングされた)RPCをすべて削除してGameObjectからインスタンス作成します。
|
get |
|
get |
このルームに参加することが予定されているユーザーのリスト。マッチメイキングの際、PhotonはMaxPlayersから各UserIDに対してスロットをブロックします。 ///
Photonのこの機能は「Slot Reservation(スロット予約)」と呼ばれます。ドキュメントページをご確認ください。 次のPhotonNetworkメソッドで予定しているプレイヤーを定義します:CreateRoom、JoinRoom、JoinOrCreateRoom。
|
get |
|
getset |
Roomが入室可能かどうかを決めます。 これはロビーでの一覧には反映されませんが、Room入室はRoomが閉まっていれば失敗します。 Roomが閉まっているとき、そのRoomはランダム・マッチメイキングに出てこなくなります。 競合状態のため、見つけた対戦が入室前に閉まってしまうことがあります。 そのときは単純にマスターに再接続して他を探してください。 "visible"プロパティを使うと、Roomを一覧に含めないようにできます。
|
getset |
Roomがロビーで一覧に追加されるかどうかを決めます。 Roomは、一覧に載らないように作成することも、あとで一覧に載るよう変更もできます。 Roomを入室可能に変えるには、openプロパティを使ってください。
|
getset |
このRoomのプレイヤー数の上限を設定します。このプロパティはロビーでも表示されます。 もしRoomが満員(players count == maxplayers)なら、このRoomに入室するのは失敗します。
|
getset |
|
getset |
Room名。Room/対戦の(ロードバランサーの1グループあたりの)一意な識別名。
|
getset |
|
get |
このRoomにいるプレイヤー数を数えます。
|
get |
|
get |
独自プロパティの一覧。これはロビーに転送されて、そこで一覧表示されます。
|
get |
|
getset |