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

Room内の任意の1プレイヤーについてまとめています。プレイヤーは(Room内で)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)
 このプレイヤーの、名前があるプロパティとpropertiesToSetの値を、更新して同期します。 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を手短かに主要点だけ説明した文字列。名前とplayer.IDと、Master Clientならそのことも含みます。 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 name [get, set]
 このプレイヤーのニックネーム More...
 
string userId [get, set]
 ルームがRoomOptions.publishUserId = trueで作成された際に利用可能なプレイヤーのUserId。 More...
 
bool IsMasterClient [get]
 このプレイヤーが現在のRoomのMaster Clientの場合trueです。 More...
 
bool isInactive [get, set]
 ルームのPlayerTTLが> 0(0以上)の場合、プレイヤーがルーム内で非アクティブな可能性があります。trueの場合、プレイヤーは(現在は)このルームからイベントを取得していませんが、後で戻ることができます。 More...
 
Hashtable CustomProperties [get, set]
 プレイヤーのカスタムプロパティのための読み取り専用キャッシュ。 PhotonPlayer.SetCustomPropertiesから設定します。 More...
 
Hashtable allProperties [get]
 (独自/「標準」)プロパティでHashtableを作成します。 More...
 
bool isLocal [get]
 
bool isMasterClient [get]
 
Hashtable customProperties [get, set]
 

Detailed Description

Room内の任意の1プレイヤーについてまとめています。プレイヤーは(Room内で)actorIDで区別されます。

どのプレイヤーキャラクターもactorId(またはID)を持ちます。Room内で有効です。サーバーから割り当てられるまで値は-1です。 どのクライアントも、SetCustomPropertiesを使いプレイヤーの独自プロパティをセットできます。Room入室前でもできるのです。 これらはRoom入室時に同期されます。

Constructor & Destructor Documentation

PhotonPlayer.PhotonPlayer ( bool  isLocal,
int  actorID,
string  name 
)

PhotonPlayerインスタンスを作成します。

Parameters
isLocalローカルPeer(またはリモート)のプレイヤーならtrue
actorID現在のRoom内で、このプレイヤーのIDまたはActorNumber(Room内の各プレイヤーを区別するショートカットです)
nameプレイヤー名(「標準プロパティ」の1つ)

Member Function Documentation

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 PhotonPlayer PhotonPlayer.Find ( int  ID)
static

特定のプレイヤーをidで取得しようと試みます。

Parameters
IDActorID
Returns
actorIDとマッチするプレイヤー。またはactorIDが使用されていないならnull。
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 
)

このプレイヤーの、名前があるプロパティとpropertiesToSetの値を、更新して同期します。

カスタムプロパティは、ルーム内のすべてのプレイヤーに利用可能なキーと値のセット(Hashtable)です。 ルームや個々のプレイヤーに関連させることができ、 何かの現在値のみが必要な場合に有用です。例:ルームのマップ。 キーはすべて文字列でなければなりません。

RoomとPhotonPlayerクラスにはどちらもSetCustomPropertiesメソッドがあります。 また、どちらのクラスもcustomPropertiesで現在のキー値へのアクセスを提供します。

値を変更する際は常にSetCustomPropertiesを使用してください。 ネットワークトラフィックを削減するには、実際に変更された値のみを設定します。 新しいプロパティが追加され既存の値が更新されます。 他の値は変更されないので、変更または新しく追加された値のみを提供するようにしてください。

このルームの名前を持つ(カスタム)プロパティを削除するには、値としてnullを使用します。

ローカルでは、SetCustomPropertiesは遅滞なくそのキャッシュを更新します。 他のクライアントは適切なオペレーションにより、Photon(サーバ)を介して更新されます。

b>チェックおよびスワップ

SetCustomPropertiesには、サーバ側のチェック・アンド・スワップ(CAS)を実行するオプションがあります: 期待値が正しい場合のみ、値が更新されます。 expectedValues??はpropertiesToSetとは異なるキー/値にすることができます。 キーを確認し別のキーの値を設定することができます(チェックが成功した場合)。

プロパティに対するクライアントの知識が間違っているか古い場合は、CASを使用して値を設定することができません。 これはプレイヤーが同時に値の設定を行うことを防ぐことができます。 例:すべてのプレイヤーがカードやアイテムを拾おうとしようとしても、一人のみが拾えるようにする必要があります。 CASでは、最初のsetPropertiesのみがサーバー側で実行され、他(同時に送信された)は失敗します。

サーバは正常に変更された値をブロードキャストし、customPropertiesのローカル「キャッシュ」は往復後のみ更新されます(変更が加えられた場合)。

「webForward」を行うことができます:Photonは、アプリケーションのために定義されたWebHookに変更されたプロパティを送信します。

PhotonPlayer.cs

PhotonNetwork.offlineModeがtrueの場合、expectedValuesパラメータとwebForwardパラメータは無視されます。 OfflineModeでは、ローカルのcustomProperties値は直ちに更新されます(ラウンドトリップなし)。

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

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

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

PhotonPlayerを手短かに主要点だけ説明した文字列。名前とplayer.IDと、Master Clientならそのことも含みます。

string PhotonPlayer.ToStringFull ( )

PhotonPlayerの概要の文字列: player.IDと名前と、このユーザーの全独自プロパティ。

注意して使ってください。毎フレーム使わないでください! どの単独コールでもcustomPropertiesをStringに変換します。

Member Data Documentation

readonly bool PhotonPlayer.isLocal = false

各クライアントは一人のプレイヤーのみ制御します。その他はローカルではありません。

object PhotonPlayer.TagObject

「プレイヤーによって」、知っておくと便利な、参照を保存するのに使われます。

例: Instantiate時にGameObjectを割り当てることで、プレイヤーのキャラクターをTagとしてセットします。

Property Documentation

Hashtable PhotonPlayer.allProperties
get

(独自/「標準」)プロパティでHashtableを作成します。

よく使われるものほど、キャッシュされます。

Hashtable PhotonPlayer.CustomProperties
getset

プレイヤーのカスタムプロパティのための読み取り専用キャッシュ。 PhotonPlayer.SetCustomPropertiesから設定します。

このHashtableの中身を編集しないでください。値を編集するなら、 SetCustomPropertiesと、このクラスのプロパティを使いましょう。 それらを使えば、クライアントはサーバーと値を同期します。

SetCustomProperties

Hashtable PhotonPlayer.customProperties
getset
int PhotonPlayer.ID
get

このプレイヤーのactorID

bool PhotonPlayer.isInactive
getset

ルームのPlayerTTLが> 0(0以上)の場合、プレイヤーがルーム内で非アクティブな可能性があります。trueの場合、プレイヤーは(現在は)このルームからイベントを取得していませんが、後で戻ることができます。

bool PhotonPlayer.isLocal
get
bool PhotonPlayer.IsMasterClient
get

このプレイヤーが現在のRoomのMaster Clientの場合trueです。

PhotonNetwork.masterClientも見てください。

bool PhotonPlayer.isMasterClient
get
string PhotonPlayer.name
getset

このプレイヤーのニックネーム

Room内で名前を同期させるため、PhotonNetwork.playerNameをセットします。

string PhotonPlayer.userId
getset

ルームがRoomOptions.publishUserId = trueで作成された際に利用可能なプレイヤーのUserId。

PhotonNetwork.FindFriendsおよび参加を予定しているプレイヤーのためにルームのスロットをブロックする際に有用(例:PhotonNetwork.CreateRoom)。