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

このクラスは、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...
 

Detailed Description

このクラスは、PUNで入室できる(入室した)Roomをそのまま反映します。 プロパティは、RoomInfoのプロパティとは違い、設定可能です。また「自分の」Roomを閉めたり隠すことができます。

Member Function Documentation

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値は直ちに更新されます(往復せずに)。

Parameters
propertiesToSet設定される新しいプロパティ。

param name = "expectedValues​​">サーバ側をチェックするために最低1つのプロパティ キー/値。キーと値は正しくなければなりません。 OfflineModeでは無視されます。

Parameters
webForward設定されたプロパティをこのアプリに定義された(ダッシュボードで)WebHookに転送するためにtrueに設定。OfflineModeでは無視されます。
void Room.SetPropertiesListedInLobby ( string[]  propsListedInLobby)

ルームを選択するためにすべてのプロパティを必要としない場合、ロビーで利用可能なプロパティを定義できるようにします。

速度と安定性を向上できるので、ロビー内のユーザーに送信するプロパティの量を制限することには意味があります。

Parameters
propsListedInLobbyロビーに転送するカスタムルームプロパティ名の配列。
override string Room.ToString ( )

このRoomインスタンスに関する概要を文字列として返します。

Returns
このRoomのインスタンスに関する概要
new string Room.ToStringFull ( )

このRoomインスタンスに関する概要を、独自プロパティも含む、より長い文字列で返します。

Returns
このRoomのインスタンスに関する概要

Property Documentation

bool Room.AutoCleanUp
get

プレイヤーが退室したとき、RoomがautoCleanUpを使うと、(バッファリングされた)RPCをすべて削除してGameObjectからインスタンス作成します。

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

このルームに参加することが予定されているユーザーのリスト。マッチメイキングの際、PhotonはMaxPlayersから各UserIDに対してスロットをブロックします。 ///

Photonのこの機能は「Slot Reservation(スロット予約)」と呼ばれます。ドキュメントページをご確認ください。 次のPhotonNetworkメソッドで予定しているプレイヤーを定義します:CreateRoom、JoinRoom、JoinOrCreateRoom。

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

Roomが入室可能かどうかを決めます。 これはロビーでの一覧には反映されませんが、Room入室はRoomが閉まっていれば失敗します。 Roomが閉まっているとき、そのRoomはランダム・マッチメイキングに出てこなくなります。 競合状態のため、見つけた対戦が入室前に閉まってしまうことがあります。 そのときは単純にマスターに再接続して他を探してください。 "visible"プロパティを使うと、Roomを一覧に含めないようにできます。

new bool Room.IsVisible
getset

Roomがロビーで一覧に追加されるかどうかを決めます。 Roomは、一覧に載らないように作成することも、あとで一覧に載るよう変更もできます。 Roomを入室可能に変えるには、openプロパティを使ってください。

new int Room.MaxPlayers
getset

このRoomのプレイヤー数の上限を設定します。このプロパティはロビーでも表示されます。 もしRoomが満員(players count == maxplayers)なら、このRoomに入室するのは失敗します。

new int Room.maxPlayers
getset
new string Room.name
getset

Room名。Room/対戦の(ロードバランサーの1グループあたりの)一意な識別名。

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

このRoomにいるプレイヤー数を数えます。

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

独自プロパティの一覧。これはロビーに転送されて、そこで一覧表示されます。

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