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

ID(またはactorNumber)によって識別される(そのルームで)ルーム内の「プレイヤー」を要約します。 More...

Public Member Functions

Player Get (int id)
 ActorNumber(Player.ID)でプレーヤーを取得します。 More...
 
Player GetNext ()
 ActorNumber(Player.ID)でソートされた、このプレイヤーの次のプレイヤーを取得します。ラップアラウンド。 More...
 
Player GetNextFor (Player currentPlayer)
 ActorNumber(Player.ID)で並べ替えられた、プレイヤーの次のプレイヤーを取得します。ラップアラウンドする。 More...
 
Player GetNextFor (int currentPlayerId)
 ActorNumber(Player.ID)で並べ替えられた、プレイヤーの次のプレイヤーを取得します。ラップアラウンドする。 More...
 
override string ToString ()
 プレイヤーの簡単な要約文字列:ActorNumberおよびNickName More...
 
string ToStringFull ()
 プレイヤーの文字列の概要:player.ID、名前、およびこのユーザーのすべてのカスタムプロパティ。 More...
 
override bool Equals (object p)
 プレイヤーが等しい場合(this.IDを返すGetHasCodeによる)。 More...
 
override int GetHashCode ()
 Equalsを伴い、HashCodeとしてID(actorNumber)を使用して返します。 More...
 
bool SetCustomProperties (Hashtable propertiesToSet, Hashtable expectedValues=null, WebFlags webFlags=null)
 このプレイヤーのカスタムプロパティを更新および同期します。任意で、expectedPropertiesを条件として提供できます。 More...
 

Public Attributes

readonly bool IsLocal
 各クライアントによって制御されるプレイヤーは1人だけです。その他はローカルではありません。 More...
 
object TagObject
 「プレイヤー別」に確認したい参照を保存するために使用できます。 More...
 

Properties

int ActorNumber [get]
 現在のルームのこのプレイヤーの識別子。別名:actorNumberまたはactorNumber。ルームの外は-1です。 More...
 
string NickName [get, set]
 このプレイヤーの一意ではないニックネーム。ルームで自動的に同期されます。 More...
 
string UserId [get, set]
 プレイヤーのユーザーID。RoomOptions.PublishUserId= trueでルームが作成されたときに使用できます。 More...
 
bool IsMasterClient [get]
 このプレイヤーが現在のルームのマスタークライアントである場合はTrue。 More...
 
bool IsInactive [get, set]
 このプレイヤーがルームでアクティブな場合(および現在送信中のイベントを取得している場合)。 More...
 
Hashtable CustomProperties [get, set]
 プレイヤーのカスタムプロパティの読み取り専用キャッシュ。Player.SetCustomPropertiesを介して設定します。 More...
 

Detailed Description

ID(またはactorNumber)によって識別される(そのルームで)ルーム内の「プレイヤー」を要約します。

各プレイヤーには、そのルームで有効なactorNumberがあります。サーバー(およびクライアントロジック)によって割り当てられるまで、-1です。

Member Function Documentation

override bool Equals ( object  p)

プレイヤーが等しい場合(this.IDを返すGetHasCodeによる)。

Player Get ( int  id)

ActorNumber(Player.ID)でプレーヤーを取得します。

Parameters
idこのルームのプレーヤーのActorNumber。
Returns
Playerまたはnull。
override int GetHashCode ( )

Equalsを伴い、HashCodeとしてID(actorNumber)を使用して返します。

Player GetNext ( )

ActorNumber(Player.ID)でソートされた、このプレイヤーの次のプレイヤーを取得します。ラップアラウンド。

Returns
Playerまたはnull。
Player GetNextFor ( Player  currentPlayer)

ActorNumber(Player.ID)で並べ替えられた、プレイヤーの次のプレイヤーを取得します。ラップアラウンドする。

次のプレーヤーに何かを渡すときに便利です。 例:次のプレイヤーにターンを渡す。

Parameters
currentPlayer次が必要なプレイヤー。
Returns
Playerまたはnull。
Player GetNextFor ( int  currentPlayerId)

ActorNumber(Player.ID)で並べ替えられた、プレイヤーの次のプレイヤーを取得します。ラップアラウンドする。

次のプレイヤーに何かを渡すときに便利です。 例:次のプレイヤーにターンを渡す。

Parameters
currentPlayerId次が必要なActorNumber(Player.ID)。
Returns
Playerまたはnull。
bool SetCustomProperties ( Hashtable  propertiesToSet,
Hashtable  expectedValues = null,
WebFlags  webFlags = null 
)

このプレイヤーのカスタムプロパティを更新および同期します。任意で、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設定するカスタムプロパティのハッシュテーブル。
expectedValuesnull以外の場合、これらはこの更新の条件としてサーバーがチェックするプロパティ値です。
webFlagsこのSetCustomProperties-operationがWebHooksに転送されるかどうかを定義します。クライアントはルームにいなければなりません。
Returns
propertiesToSetがnullまたは空であるか、文字列キーがゼロの場合はfalse。 expectedPropertiesまたはwebFlagsが使用されている場合でも、オフラインモードではTrue。 ルームにない場合、ローカルプレイヤーとexpectedValuesおよびwebFlagsがnullの場合、trueを返します。 (これを使用して、ルームに参加するときに送信されるプロパティをキャッシュします)。 それ以外の場合、この操作をサーバーに送信できる場合に戻ります。
override string ToString ( )

プレイヤーの簡単な要約文字列:ActorNumberおよびNickName

string ToStringFull ( )

プレイヤーの文字列の概要:player.ID、名前、およびこのユーザーのすべてのカスタムプロパティ。

すべてのフレームではなく、注意して使用してください! 呼び出しごとにcustomPropertiesを文字列に変換します。

Member Data Documentation

readonly bool IsLocal

各クライアントによって制御されるプレイヤーは1人だけです。その他はローカルではありません。

object TagObject

「プレイヤー別」に確認したい参照を保存するために使用できます。

例:InstantiateでGameObjectを割り当てることにより、プレイヤーのキャラクターをタグとして設定します。

Property Documentation

int ActorNumber
get

現在のルームのこのプレイヤーの識別子。別名:actorNumberまたはactorNumber。ルームの外は-1です。

IDはルームごとに割り当てられ、そのコンテキストでのみ有効です。退室や再参加の際に変更されします。IDはルームごとに再利用されることはありません。

Hashtable CustomProperties
getset

プレイヤーのカスタムプロパティの読み取り専用キャッシュ。Player.SetCustomPropertiesを介して設定します。

このハッシュテーブルの内容を変更しないでください。SetCustomPropertiesとこのクラスの プロパティを使用して、値を変更します。これらを使用すると、 クライアントは値をサーバーと同期します。

SetCustomProperties

bool IsInactive
getset

このプレイヤーがルームでアクティブな場合(および現在送信中のイベントを取得している場合)。

非アクティブなプレーヤーはルームにスポットを保ちますが、それ以外はオフラインのように動作します(実際の接続ステータスに関係なく)。 ルームにはPlayerTTL != 0が必要です。プレイヤーがPlayerTTLよりも長く非アクティブである場合、サーバーはこのプレイヤーをルームから削除します。 クライアントがルームに「再参加」する場合、それは参加するのと同じです。つまり、プロパティ、キャッシュされたイベント、そしてライブイベントを取得します。

bool IsMasterClient
get

このプレイヤーが現在のルームのマスタークライアントである場合はTrue。

string NickName
getset

このプレイヤーの一意ではないニックネーム。ルームで自動的に同期されます。

プレイヤーは、ルームで自分のプレイヤー名を変更する場合があります(これは単なるプロパティです)。 この値を設定すると、サーバーと他のプレーヤーが更新されます(操作を使用)

string UserId
getset

プレイヤーのユーザーID。RoomOptions.PublishUserId= trueでルームが作成されたときに使用できます。

LoadBalancingClient.OpFindFriendsと、予想されるプレイヤーのルームのスロットをブロックするのに役立ちます(例:LoadBalancingClient.OpCreateRoom)。