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

このクラスは、クライアントが参加する/参加したルームを表します。 More...

Inherits RoomInfo.

Public Member Functions

 Room (string roomName, RoomOptions options, bool isOffline=false)
 指定された名前とプロパティ、およびパラメーターによって提供される「リストオプション」でルーム(表現)を作成します。 More...
 
virtual bool SetCustomProperties (Hashtable propertiesToSet, Hashtable expectedProperties=null, WebFlags webFlags=null)
 このルームのカスタムプロパティを更新および同期します。オプションで、expectedPropertiesを条件として提供できます。 More...
 
bool SetPropertiesListedInLobby (string[] lobbyProps)
 ルームを選択するためにすべてのプロパティが必要ではない場合、ロビーで使用可能なプロパティを定義できます。 More...
 
bool SetMasterClient (Player masterClientPlayer)
 現在のルームのマスタークライアントとして別のプレイヤーを割り当てるようサーバーに要求します。 More...
 
virtual bool AddPlayer (Player player)
 プレイヤーが既にルームのリストにあるかどうかを確認し、ない場合はStorePlayer()を呼び出します。 More...
 
virtual Player StorePlayer (Player player)
 Players辞書内のプレイヤー参照を更新します(以前に存在したかどうかは関係ありません)。 More...
 
virtual Player GetPlayer (int id)
 指定されたactorNumber(別名ID)を持つプレイヤーを見つけようとします。 IDはルームごとにのみ有効であるため、ルームにいるときにのみ役立ちます。 More...
 
bool ClearExpectedUsers ()
 サーバーのスロット予約リストから現在予想されるすべてのユーザーを削除しようとします。 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

LoadBalancingClient LoadBalancingClient [get, set]
 現在接続と状態を保持しているLoadBalancingClientへの参照。 More...
 
new string Name [get, set]
 ルームの名前。ルーム/マッチの一意の識別子(リージョンおよび仮想appIDごと)。 More...
 
bool IsOffline [get]
 
new bool IsOpen [get, set]
 ルームに参加できるかどうかを定義します。 More...
 
new bool IsVisible [get, set]
 ルームがロビーにリストされるかどうかを定義します。 More...
 
new byte MaxPlayers [get, set]
 このルームにプレーヤーの制限を設定します。このプロパティも同期され、ロビーに表示されます。 ルームがいっぱいの場合(players count == maxplayers)、このルームへの参加は失敗します。 More...
 
new byte PlayerCount [get]
 このルームのプレーヤーの数(this.Players.Countを使用)。 More...
 
Dictionary< int, PlayerPlayers [get]
 ルーム内にいる間、これはそのルームにいるプレイヤーのリストです。 More...
 
string[] ExpectedUsers [get]
 このルームに参加する予定のユーザーのリスト。マッチメイキングでは、Photonはこれらの各ユーザーIDのスロットをMaxPlayersからブロックします。 More...
 
int PlayerTtl [get, set]
 プレイヤーの生存時間。ユーザーがplayerlistから削除される(スロットを解放する)までに、プレイヤーが(切断または退席により)非アクティブになることができる時間。 More...
 
int EmptyRoomTtl [get, set]
 生存時間。最後のプレイヤーが非アクティブになった後、ルームが使用可能になっている時間(およびサーバーメモリ内)。この時間が経過すると、ルームは永続化または破壊されます。 More...
 
int MasterClientId [get]
 このルームのマスターであるプレイヤーのID(acterNumber、actorNumber)。 注:これは、現在のマスターがルームを出ると変わります。 More...
 
string[] PropertiesListedInLobby [get]
 ロビーのRoomInfoにあるカスタムプロパティのリストを取得します。 このリストは、ルームを作成するときに定義され、後で変更することはできません。 比較:LoadBalancingClient.OpCreateRoom() More...
 
bool AutoCleanUp [get]
 このルームがautoCleanUpを使用して、プレイヤーが離れたときにすべての(バッファーされた)RPCとインスタンス化されたGameObjectを削除するかどうかを取得します。 More...
 
bool BroadcastPropertiesChangeToAll [get]
 
- Properties inherited from RoomInfo
Hashtable CustomProperties [get]
 ルームのカスタムプロパティの読み取り専用「キャッシュ」。 Room.SetCustomPropertiesを介して設定します(RoomInfoクラスでは使用できません!)。 More...
 
string Name [get]
 ルームの名前。ルーム/マッチの一意の識別子(AppId +ゲームバージョンごと)。 More...
 
int PlayerCount [get]
 現在ルームにいるプレイヤーの数。このプロパティは、Roomクラス(ルームにいるときに使用)によって上書きされます。 More...
 
byte MaxPlayers [get]
 このルームのプレイヤーの制限。このプロパティはロビーにも表示されます。 ルームがいっぱいの場合(players count == maxplayers)、このルームへの参加は失敗します。 More...
 
bool IsOpen [get]
 ルームに参加できるかどうかを定義します。 これはロビーでのリスティングには影響しませんが、開いていないとルームへの参加は失敗します。 開いていない場合、ルームはランダムなマッチメイキングから除外されます。 レース条件により、試合は参加中であっても閉鎖される場合があります。 マスターに再接続して、別のマスターを見つけてください。 ルームをリストに表示させないようにするには、プロパティ「IsVisible」を使用します。 More...
 
bool IsVisible [get]
 ルームがロビーにリストされるかどうかを定義します。 ルームは非表示に作成するか、非表示に変更できます。 ルームに参加できるかどうかを変更するには、openプロパティを使用します。 More...
 

Additional Inherited Members

- Public Attributes inherited from RoomInfo
bool RemovedFromList
 ロビーで使用され、リストに表示されなくなったルームをマークします(満室、終了、または非表示)。 More...
 
int masterClientId
 マスタークライアントID(actorNumber)のバッキングフィールド。 ルームプロパティのサーバーおよびev leaveによって定義されます。 More...
 
- Protected Attributes inherited from RoomInfo
byte maxPlayers = 0
 プロパティのバッキングフィールド。 More...
 
int emptyRoomTtl = 0
 プロパティのバッキングフィールド。 More...
 
int playerTtl = 0
 プロパティのバッキングフィールド。 More...
 
string[] expectedUsers
 プロパティのバッキングフィールド。 More...
 
bool isOpen = true
 プロパティのバッキングフィールド。 More...
 
bool isVisible = true
 プロパティのバッキングフィールド。 More...
 
bool autoCleanUp = true
 プロパティのバッキングフィールド。GamePropertyがtrueに設定されていない場合はfalse(そうでない場合は送信されません)。 More...
 
string name
 プロパティのバッキングフィールド。 More...
 
string[] propertiesListedInLobby
 プロパティのバッキングフィールド。 More...
 

Detailed Description

このクラスは、クライアントが参加する/参加したルームを表します。

現在のプレイヤー、そのプロパティ、およびこのルームのプロパティのリストも含まれています。 ルームインスタンスには、変更可能なIsOpen、MaxPlayersなどの「よく知られた」プロパティがいくつかあります。 独自のカスタムプロパティは、ルームにいる間にSetCustomProperties()を使用して設定できます。

通常、このクラスは、ロジックと追加機能を備えたゲーム固有の実装で拡張する必要があります。

Constructor & Destructor Documentation

Room ( string  roomName,
RoomOptions  options,
bool  isOffline = false 
)

指定された名前とプロパティ、およびパラメーターによって提供される「リストオプション」でルーム(表現)を作成します。

Parameters
roomNameルームの名前(サーバー上で実際に作成されるまでnullの場合があります)
optionsルームのオプション。

Member Function Documentation

virtual bool AddPlayer ( Player  player)
virtual

プレイヤーが既にルームのリストにあるかどうかを確認し、ない場合はStorePlayer()を呼び出します。

Parameters
player新しいプレイヤー。IDで識別されます。
Returns
プレイヤーを追加できなかった場合はfalse(既にリストに含まれていたため)。
bool ClearExpectedUsers ( )

サーバーのスロット予約リストから現在予想されるすべてのユーザーを削除しようとします。

この操作は、新規/他のユーザーの参加と競合する可能性があることに注意してください。このクライアントがClearExpectedUsersを呼び出す前 または後に、予想されるユーザーのリストにユーザーを追加している可能性があります。

サーバーが正常な更新を送信すると、このルームのexpectedUsers値が更新されます。

内部:このメソッドは、ルームのExpectedUsersプロパティの設定をまとめます。

Returns
操作をサーバーに送信できるかどうか。
virtual Player GetPlayer ( int  id)
virtual

指定されたactorNumber(別名ID)を持つプレイヤーを見つけようとします。 IDはルームごとにのみ有効であるため、ルームにいるときにのみ役立ちます。

Parameters
id検索するID。
Returns
IDまたはnullのプレイヤー。
virtual bool SetCustomProperties ( Hashtable  propertiesToSet,
Hashtable  expectedProperties = null,
WebFlags  webFlags = null 
)
virtual

このルームのカスタムプロパティを更新および同期します。オプションで、expectedPropertiesを条件として提供できます。

カスタムプロパティは、ルームのプレイヤーに対して同期される文字列キーと任意の 値のセットです。 OpJoinとOpCreateの応答にあるように、 クライアントがルームに入るときに利用できます。

カスタムプロパティは、(現在の)ルームまたはプレーヤー(そのルーム内)に関連しています。

両方のクラスは、現在のキー/値をローカルにキャッシュし、CustomPropertiesプロパティとして使用可能にします。 これはそれらを読むためだけに提供されています。 それらを設定/変更するには、メソッドSetCustomPropertiesを使用する必要があります。

クライアントはいつでも(ルームにいるとき)カスタムプロパティを設定できます。 最適な使用方法を整理するのはゲームロジック次第です。

SetCustomPropertiesは、新規または変更されたキー/値でのみ呼び出す必要があります。 これにより、トラフィックとパフォーマンスが低下します。

expectedPropertiesを定義しない限り、キー/値の設定は常に許可されます。 この場合、プロパティ設定クライアントはサーバーから新しい値を受信せず、代わりにSetCustomPropertiesの ローカルキャッシュを更新します。

expectedPropertiesを定義する場合、サーバープロパティキャッシュに同じ値を持つすべての expectedPropertiesが含まれていない場合、サーバーは更新をスキップします。 この場合、プロパティ設定クライアントはサーバーから更新を取得し、キャッシュされたキー/値を他の 全員とほぼ同時に更新します。

expectedPropertiesを使用する利点は、1つのクライアントのみが1つの既知の 値から別の値にキーを正常に設定できることです。 例:カスタムプロパティ「ownedBy」でアイテムを所有するストア。 最初は0です。 複数のプレーヤーがアイテムに到達すると、全員が「ownedBy」を0からactorNumberに変更しようとします。 expectedProperties {"ownedBy", 0}を条件として使用すると、最初にアイテムを獲得したプレイヤーが アイテムを取得します(他のプレイヤーは所有権の設定に失敗します)。

プロパティは、ターンベースゲームのゲーム状態(IsPersistent = trueを使用)で保存されます。

Parameters
propertiesToSet変更されるカスタムプロパティのハッシュテーブル。
expectedProperties新しい値を設定するための条件として使用するキー/値をいくつか提供します。クライアントはルームにいなければなりません。
webFlagsこのSetCustomProperties-operationがWebHooksに転送されるかどうかを定義します。クライアントはルームにいなければなりません。
Returns
propertiesToSetがnullまたは空であるか、文字列キーがゼロの場合はfalse。 expectedPropertiesまたはwebFlagsが使用されている場合でも、オフラインモードではTrue。 それ以外の場合、この操作をサーバーに送信できるかどうかを返します。
bool SetMasterClient ( Player  masterClientPlayer)

現在のルームのマスタークライアントとして別のプレイヤーを割り当てるようサーバーに要求します。

RaiseEventには、ルームのマスタークライアントにのみメッセージを送信するオプションがあります。 SetMasterClientは、これらのメッセージを取得するクライアントに影響します。

このメソッドは、サーバー上の操作を呼び出して、新しいマスタークライアントを設定しますが、これには往復がかかります。 成功した場合、このクライアントと他のクライアントはサーバーから新しいマスタークライアントを取得します。

SetMasterClientは、どの現在のマスタークライアントを新しいマスタークライアントに置き換えるかをサーバーに指示します。 何かが以前にマスタークライアントを切り替えると、失敗します。このエラーのコールバックはありません。 すべてのクライアントは、サーバーによって割り当てられた新しいマスタークライアントを取得する必要があります。

こちらのご確認ください: MasterClientId

Parameters
masterClientPlayer次のマスタークライアントになるプレイヤー。
Returns
この操作を現在実行できなかった場合はfalse。v4 Photon Serverが必要です。
bool SetPropertiesListedInLobby ( string[]  lobbyProps)

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

ロビーのユーザーに送信するプロパティの量を制限して、速度と安定性を向上させます。

Parameters
lobbyPropsロビーに転送するカスタムルームプロパティ名の配列。
Returns
操作をサーバーに送信できるかどうか。
virtual Player StorePlayer ( Player  player)
virtual

Players辞書内のプレイヤー参照を更新します(以前に存在したかどうかは関係ありません)。

Parameters
playerルームに挿入するPlayerインスタンス。
override string ToString ( )

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

Returns
このRoomインスタンスの要約。
new string ToStringFull ( )

このRoomインスタンスの概要を、カスタムプロパティを含む長い文字列として返します。

Returns
このRoomインスタンスの要約。

Property Documentation

bool AutoCleanUp
get

このルームがautoCleanUpを使用して、プレイヤーが離れたときにすべての(バッファーされた)RPCとインスタンス化されたGameObjectを削除するかどうかを取得します。

int EmptyRoomTtl
getset

生存時間。最後のプレイヤーが非アクティブになった後、ルームが使用可能になっている時間(およびサーバーメモリ内)。この時間が経過すると、ルームは永続化または破壊されます。

string [] ExpectedUsers
get

このルームに参加する予定のユーザーのリスト。マッチメイキングでは、Photonはこれらの各ユーザーIDのスロットをMaxPlayersからブロックします。

Photonの対応する機能は「スロット予約」と呼ばれ、ドキュメントページで見つけることができます。 次のメソッドで予想されるプレーヤーを定義します: LoadBalancingClient.OpCreateRoom, LoadBalancingClient.OpJoinRoom, LoadBalancingClient.OpJoinRandomRoom

new bool IsOpen
getset

ルームに参加できるかどうかを定義します。

これはロビーでのリスティングには影響しませんが、ルームが開いていないと参加は失敗します。 開いていない場合、ルームはランダムなマッチメイキングから除外されます。 レースの状況により、ユーザーが参加しようとしている間に見つかったマッチが終了する場合があります。 マスターに再接続して、別のマッチを探します。 ルームをリストしないようにするには、プロパティ「IsVisible」を使用します。

RoomInfoの一部として、これは設定できません。 ルーム(プレイヤーが参加した)の一部として、セッターはサーバーとすべてのクライアントを更新します。

new bool IsVisible
getset

ルームがロビーにリストされるかどうかを定義します。

ルームは非表示に作成するか、非表示に変更できます。 ルームに参加できるかどうかを変更するには、property:openを使用します。

RoomInfoの一部として、これは設定できません。 ルーム(プレイヤーが参加した)の一部として、セッターはサーバーとすべてのクライアントを更新します。

現在接続と状態を保持しているLoadBalancingClientへの参照。

int MasterClientId
get

このルームのマスターであるプレイヤーのID(acterNumber、actorNumber)。 注:これは、現在のマスターがルームを出ると変わります。

new byte MaxPlayers
getset

このルームにプレーヤーの制限を設定します。このプロパティも同期され、ロビーに表示されます。 ルームがいっぱいの場合(players count == maxplayers)、このルームへの参加は失敗します。

RoomInfoの一部として、これは設定できません。 ルーム(プレイヤーが参加した)の一部として、セッターはサーバーとすべてのクライアントを更新します。

new string Name
getset

ルームの名前。ルーム/マッチの一意の識別子(リージョンおよび仮想appIDごと)。

サーバーによって設定された名前は変更できません。

new byte PlayerCount
get

このルームのプレーヤーの数(this.Players.Countを使用)。

Dictionary<int, Player> Players
get

ルーム内にいる間、これはそのルームにいるプレイヤーのリストです。

int PlayerTtl
getset

プレイヤーの生存時間。ユーザーがplayerlistから削除される(スロットを解放する)までに、プレイヤーが(切断または退席により)非アクティブになることができる時間。

string [] PropertiesListedInLobby
get

ロビーのRoomInfoにあるカスタムプロパティのリストを取得します。 このリストは、ルームを作成するときに定義され、後で変更することはできません。 比較:LoadBalancingClient.OpCreateRoom()

最初から設定されていないプロパティに名前を付けることができます。これらは、後で追加されるときにロビーと同期されます。