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

PhotonNetworkプラグインを使うためのメインクラスです。 このクラスは静的クラスです。 More...

Static Public Member Functions

static bool ConnectUsingSettings ()
 PhotonServerSettingsファイルの設定に従ってPhotonに接続します。 More...
 
static bool ConnectToMaster (string masterServerAddress, int port, string appID)
 PhotonマスターサーバーにIPアドレス・ポート・appIDとゲーム(クライアント)バージョンで接続します。 More...
 
static bool ConnectToBestCloudServer ()
 最も低いpingでPhoton Cloudリージョンに接続します(UnityのPingに対応するプラットフォームで)。 More...
 
static bool ConnectToRegion (string region)
 選択したPhoton Cloudリージョンに接続します。 More...
 
static void Disconnect ()
 このクライアントをPhotonサーバから切断します。これは、ルームを離れ、完了時にOnDisconnectedを呼び出すプロセスです。 More...
 
static bool Reconnect ()
 切断後にマスターサーバーに再接続するために使用できます。 More...
 
static void NetworkStatisticsReset ()
 トラフィック統計をリセットして再度有効にします。 More...
 
static string NetworkStatisticsToString ()
 NetworkStatisticsEnabledが統計を収集するために使用された場合にのみ利用可能です。 More...
 
static int GetPing ()
 Photonサーバーへの現在の往復時間。 More...
 
static void FetchServerTimestamp ()
 サーバーのタイムスタンプを更新します(非同期操作、往復します)。 More...
 
static void SendAllOutgoingCommands ()
 呼び出されたばかりのRPCとInstantiatesを即時に送信するために使用できます。それらは他のプレイヤーに送信されます。 More...
 
static bool CloseConnection (Player kickPlayer)
 クライアントに切断を要求します(KICK)。マスタークライアントのみがこれを実行できます。 More...
 
static bool SetMasterClient (Player masterClientPlayer)
 現在のルームのマスタークライアントとして別のプレイヤーを割り当てるようにサーバーに要求します。 More...
 
static bool JoinRandomRoom ()
 フィルタに一致するランダムなルームに参加します。次をコールバックします:OnJoinedRoomまたはOnJoinRandomFailed。 More...
 
static bool JoinRandomRoom (Hashtable expectedCustomRoomProperties, byte expectedMaxPlayers)
 フィルタに一致するランダムなルームに参加します。次がコールバックされます:OnJoinedRoomまたはOnJoinRandomFailed。 More...
 
static bool JoinRandomRoom (Hashtable expectedCustomRoomProperties, byte expectedMaxPlayers, MatchmakingMode matchingType, TypedLobby typedLobby, string sqlLobbyFilter, string[] expectedUsers=null)
 フィルタに一致するランダムなルームに参加します。次がコールバックされます:OnJoinedRoomまたはOnJoinRandomFailed。 More...
 
static bool CreateRoom (string roomName, RoomOptions roomOptions=null, TypedLobby typedLobby=null, string[] expectedUsers=null)
 新しいルームを作ります。次をコールバックします:OnCreatedRoomとOnJoinedRoomまたはOnCreateRoomFailed。 More...
 
static bool JoinOrCreateRoom (string roomName, RoomOptions roomOptions, TypedLobby typedLobby, string[] expectedUsers=null)
 特定のルームに名前で参加し、必要に応じてルームを作成します。次をコールバックします:OnJoinedRoomまたはOnJoinRoomFailed。 More...
 
static bool JoinRoom (string roomName, string[] expectedUsers=null)
 名前でルームに参加します。コールバックされます:OnJoinedRoomまたはOnJoinRoomFailed。 More...
 
static bool RejoinRoom (string roomName)
 roomNameでルームに再参加します(内部でuserIDを使用して戻ります)。次をコールバックします:OnJoinedRoomまたはOnJoinRoomFailed。 More...
 
static bool ReconnectAndRejoin ()
 クライアントがゲームプレイ中に接続を失ったとき、このメソッドはルームへの再接続と再参加を試みます。 More...
 
static bool LeaveRoom (bool becomeInactive=true)
 現在のルームを出て、マスターサーバーに戻って、ルームに参加したりルームを作成したりできます(備考を参照)。 More...
 
static bool JoinLobby ()
 マスターサーバー上で、デフォルトロビーに入ります。そのロビーでは、現在使用中のRoom一覧をみることができます。 More...
 
static bool JoinLobby (TypedLobby typedLobby)
 マスターサーバー上でロビーに入って、有効なRoomの一覧を得ることができます。 More...
 
static bool LeaveLobby ()
 ロビーから出ます。有効なRoomについて更新を受け取るのを停止します。 More...
 
static bool FindFriends (string[] friendsToFind)
 フレンドのリストのためにルームとオンラインのステータスを要求し、PhotonNetwork.Friendsに結果を保存します。 More...
 
   static bool GetCustomRoomList (TypedLobby typedLobby, string sqlLobbyFilter)
 サーバからゲームのカスタムリストを取得し、SQLのような「where」節に一致させて、OnReceivedRoomListUpdateコールバックをトリガーします。 More...
 
static void SetPlayerCustomProperties (Hashtable customProperties)
 この(ローカル)プレイヤーのプロパティをセットして、他のプレイヤーにも同期します(直接編集しないでください)。 More...
 
static void RemovePlayerCustomProperties (string[] customPropertiesToDelete)
 「この」プレイヤーの独自プロパティをローカルで削除します。重要:この変更は同期されません! この挙動はRoomを切り替えるとき便利です。 More...
 
static bool RaiseEvent (byte eventCode, object eventContent, RaiseEventOptions raiseEventOptions, SendOptions sendOptions)
 Room内の、一からカスタマイズ可能なイベントを送信します。イベントは少なくともEventCode (0..199)と内容で構成されています。 More...
 
static bool AllocateViewID (PhotonView view)
 現在のプレイヤーまたはローカルのプレイヤーにviewIDを割り当てます。 More...
 
static bool AllocateSceneViewID (PhotonView view)
 Master Clientに対して、シーンオブジェクトに妥当なviewIDを割り当てさせることができます。 More...
 
static GameObject Instantiate (string prefabName, Vector3 position, Quaternion rotation, byte group=0, object[] data=null)
 
static GameObject InstantiateSceneObject (string prefabName, Vector3 position, Quaternion rotation, byte group=0, object[] data=null)
 
static void Destroy (PhotonView targetView)
 PhotonViewが静的でないか、このクライアントの制御下ならば、GameObjectとそれに関連したPhotonViewをネットワーク上から破棄します。 More...
 
static void Destroy (GameObject targetGo)
 PhotonViewが静的でないか、このクライアントの制御下ならば、GameObjectとそれに関連したPhotonViewをネットワーク上から破棄します。 More...
 
static void DestroyPlayerObjects (Player targetPlayer)
 ターゲットプレイヤーのGameObject・PhotonView・それらの発したRPCをすべてネットワーク上から破棄します。これを呼べるのは、ローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)です。 More...
 
static void DestroyPlayerObjects (int targetPlayerId)
 (IDで指定した)プレイヤーのGameObject・PhotonView・それらの発したRPCをすべてネットワーク上から破棄します。これを呼べるのは、ローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)です。 More...
 
static void DestroyAll ()
 Room内のGameObject・PhotonView・それらの発したRPCをすべてネットワーク上から破棄します。サーバーにバッファリングされたすべてを削除します。これを呼べるのは、Master Client(全員にむけて)だけです。 More...
 
static void RemoveRPCs (Player targetPlayer)
 ターゲットプレイヤーに送信され、サーバーでバッファリングされたRPCを、すべてネットワーク上から破棄します。これを呼べるのはローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)のみです。 More...
 
static void RemoveRPCs (PhotonView targetPhotonView)
 targetPhotonViewを通して送信される、サーバーでバッファリングされたRPCを、すべて削除します。Master Clientと、targetPhotonViewの所有者が、これを呼ぶことができます。 More...
 
static HashSet< GameObject > FindGameObjectsWithComponent (Type type)
 特定の型を持つComponentを伴うGameObjectを検索します(FindObjectsOfTypeを使います)。 More...
 
static void SetInterestGroups (byte group, bool enabled)
 指定されたインタレストグループ(PhotonViewsに適用)で受信を有効/無効にします。 More...
 
static void LoadLevel (int levelNumber)
 ネットワークメッセージキューを一時停止するためにレベルの読み込みをラップします。必要に応じて、ルームで読み込まれたレベルを同期します。 More...
 
static void LoadLevel (string levelName)
 ネットワークメッセージキューを一時停止するためのレベルの読み込みをラップします。必要に応じて、ルームで読み込まれたレベルを同期します。 More...
 
static bool WebRpc (string name, object parameters, bool sendAuthCookie=false)
 この操作はPhotonにあなたのカスタムWebサービスを与えられたパラメータで名前(パス)で呼び出すようにさせます。 More...
 
static void AddCallbackTarget (object target)
 実装されたcallback-interfacesのコールバック用のオブジェクトを登録します。 More...
 
static void RemoveCallbackTarget (object target)
 実装されたコールバックインターフェースのコールバックからターゲットオブジェクトを削除します。 More...
 
static void DestroyPlayerObjects (int playerId, bool localOnly)
 すべてのInstantiatesとRPCをローカルで破棄し、(localOnlyでない場合)EvDestroy(player)を送信し、サーバーバッファ内の関連イベントをクリアします。 More...
 
static void DestroyAll (bool localOnly)
 
static bool LocalCleanPhotonView (PhotonView view)
 
static PhotonView GetPhotonView (int viewID)
 
static void RegisterPhotonView (PhotonView netView)
 
static void OpCleanActorRpcBuffer (int actorNumber)
 他のプレイヤーのRPCを削除します(マスターとして使用される)。 これによりローカルキャッシュはクリーンアップされません。プレイヤーのRPCを忘れてインスタンス化するようにサーバーに伝えるだけです。 More...
 
static void OpRemoveCompleteCacheOfPlayer (int actorNumber)
 RPCやインスタンスを削除する代わりに、アクターによってキャッシュされたものをすべて削除します。 More...
 
static void OpRemoveCompleteCache ()
 
static void CleanRpcBufferIfMine (PhotonView view)
 
static void OpCleanRpcBuffer (PhotonView view)
 PhotonViewのサーバのRPCをクリーンアップします(さらなるチェックなしで)。 More...
 
static void RemoveRPCsInGroup (int group)
 これがマスタークライアントである場合、または個々のPhotonViewを制御している場合は、targetGroupで送信されたサーバーからすべてのバッファ付きRPCを削除します。 More...
 
static void SetLevelPrefix (byte prefix)
 後からインスタンス化されたPhotonViewのレベルプレフィックスを設定します。1つしか必要ない場合は設定しないでください。 More...
 
static void SetInterestGroups (byte[] disableGroups, byte[] enableGroups)
 特定のインタレストグループでの受信を有効/無効にします(PhotonViewに適用される)。 More...
 
static void SetSendingEnabled (byte group, bool enabled)
 特定のグループで送信を有効/無効にする(PhotonViewに適用される) More...
 
static void SetSendingEnabled (byte[] disableGroups, byte[] enableGroups)
 特定のグループでの送信を有効/無効にします(PhotonViewに適用される)。 More...
 

Public Attributes

const string PunVersion = "2.6"
 ゲームのバージョン番号。これを設定するとAppVersionが更新され、マッチメイキングの際にプレイヤーベースを区別します。 More...
 
const int SyncViewId = 0
 
const int SyncCompressed = 1
 
const int SyncNullValues = 2
 
const int SyncFirstValue = 3
 

Static Public Attributes

static LoadBalancingClient NetworkingClient
 LoadBalancingClientはPhoton Realtimeの一部であり、複数のサーバーと状態をPUN用にラップします。 More...
 
static readonly int MAX_VIEW_IDS = 1000
 プレイヤー毎に(またはシーン毎に)割り当てられるPhotonViewの最大数。 基本説明 のトピック「制限事項」でこの制限を引き起こしている理由をご覧ください More...
 
static ServerSettings PhotonServerSettings = (ServerSettings)Resources.Load(PhotonNetwork.ServerSettingsFileName, typeof(ServerSettings))
 シリアライズされたサーバー設定。サーバー設定はセットアップ・ウィザードによって記述され、ConnectUsingSettingsで使われます。 More...
 
static ConnectMethod ConnectMethod = ConnectMethod.NotCalled
 どのConnectメソッドが最後に呼び出されたかを追跡します。 More...
 
static PunLogLevel LogLevel = PunLogLevel.ErrorsOnly
 PUNの冗長性を制御します。 More...
 
static float PrecisionForVectorSynchronization = 0.000099f
 Vector2またはVector3(たとえばTransform、Rotation)の最小の差は、変換が必要です。その後でPhotonViewのOnSerialize/ObservingComponentを通して送信されます。 More...
 
static float PrecisionForQuaternionSynchronization = 1.0f
 PhotonViewのOnSerialize/ObservingComponentを通して送信される前に、Rotationに変換が必要となる、最小の角度。 More...
 
static float PrecisionForFloatSynchronization = 0.01f
 PhotonViewのOnSerialize/ObservingComponentを通して送信される前の、float数値間の最小の差。 More...
 
static float BackgroundTimeout = 60.0f
 UnityのOnApplicationPause(true)が呼ばれた後の接続を保持するためのフォールバックスレッドをPUNがどのくらいの期間動かすかを定義します。デフォルトは60秒です More...
 
static bool UseRpcMonoBehaviourCache
 有効にすると、RPCが呼ばれるMonoBehaviourがキャッシュされ、不可のかかるGetComponents<MonoBehaviour>()の呼び出しを防ぐことができます。 More...
 
static int ObjectsInOneUpdate = 10
 1つのメッセージにまとめられるOnPhotonSerialize() - 呼び出しの数を定義します。 More...
 

Properties

static string GameVersion [get, set]
 ゲームのバージョン番号。これを設定するとAppVersionが更新され、マッチメイキングの際にプレイヤーベースを区別します。 More...
 
static string AppVersion [get]
 Photon Serverに送信され、 "Virtual AppId"が指定されます。 More...
 
static string ServerAddress [get]
 (マスターかゲームサーバーかを問わず)現在使用されているサーバーアドレス。 More...
 
static string CloudRegion [get]
 現在使用されているCloudリージョン(存在する場合)。クライアントがマスターサーバーまたはゲームサーバーでなければ、リージョンはまだ定義されていません。 More...
 
static string BestRegionSummaryInPreferences [get, set]
 プレイヤー設定の「ベストリージョンサマリー」を保存してアクセスするために使用されます。 More...
 
static bool IsConnected [get]
 最初にPhotonに接続するまではfalseです。オフラインモードでは、どのサーバーに接続していても、サーバーを切り替えている間もtrueです。 More...
 
static bool IsConnectedAndReady [get]
 改善されたconnectedです。入室・退室などの操作を受け付ける準備ができたサーバーに接続しているときのみtrueです。 More...
 
static ClientState NetworkClientState [get]
 OfflineModeの場合を除き、ネットワークレベルのクライアントの状態を直接提供します。 More...
 
static ServerConnection Server [get]
 このクライアントが現在接続している、または接続しようとしているサーバー(の型)。 More...
 
static AuthenticationValues AuthValues [get, set]
 接続時に使用されるユーザーの認証値。 More...
 
static TypedLobby CurrentLobby [get]
 PUNがロビーに参加したりゲームを作成するときに使用されるロビー。 これは、ロビーに参加するとき、またはルームを作成するときに定義されます。 More...
 
static Room CurrentRoom [get]
 現在いるルームを取得します(OfflineModeのときも)。ルームにいない場合はnull。 More...
 
static Player LocalPlayer [get]
 アプリがシャットダウンしない限り、このクライアントのPlayerインスタンスは常に利用可能です。 More...
 
static string NickName [get, set]
 プレイヤーのニックネームを、入室したRoom内の全員に同期します。これはPhotonPlayer.nameを設定します。 More...
 
static Player[] PlayerList [get]
 現在のルームのプレイヤーリストのソートされたコピー。これはLinqを使っているので、この値をキャッシュしてください。プレイヤーが入室または退室するときに更新。 More...
 
static Player[] PlayerListOthers [get]
 このクライアントを除く、現在のルームのプレイヤーリストのソートされたコピー。これはLinqを使っているので、この値はキャッシュしてください。プレイヤーが参加または退室するときに更新。 More...
 
static bool OfflineMode [get, set]
 オフラインモードによって、あなたのマルチプレイヤーゲームのコードをシングルプレイヤーゲームモードに再利用できるようになります。 trueなら、PhotonNetworkはなにも接続しないので、オーバーヘッドがない状態に近くなります。 最も便利なのは、RPCとPhotonNetwork.Instantiateを再利用できることです。 More...
 
static bool AutomaticallySyncScene [get, set]
 Room内のクライアントがすべて、(PhotonNetwork.LoadLevelを使っている場合)Master Clientと同じレベルをロードするべきかを決めます。 More...
 
static bool EnableLobbyStatistics [get]
 有効にすると、クライアントはMaster Serverから利用可能なロビーのリストを取得します。 More...
 
static bool InLobby [get]
 このクライアントがロビーにいるときtrueです。. More...
 
static int SendRate [get, set]
 PhotonNetworkが一秒に何回パッケージを送信するべきかを定義します。 これを変更した場合は、 'SerializationRate'も変更してください。 More...
 
static int SerializationRate [get, set]
 OnPhotonSerializeがPhotonViewに、1秒何度呼ばれるかを定義します。 More...
 
static bool IsMessageQueueRunning [get, set]
 受信イベント(RPCやインスタンス作成やその他受信するすべて)の配信を一時停止するのに使われます。 More...
 
static double Time [get]
 Photonのネットワークタイムです。サーバーと同期されます。 More...
 
static int ServerTimestamp [get]
 現在のサーバーのミリ秒単位のタイムスタンプです。 More...
 
static bool IsMasterClient [get]
 自分はMaster Clientであるかどうか。 More...
 
static Player MasterClient [get]
 現在のルームのマスタークライアント、またはnull(ルームの外)。 More...
 
static bool InRoom [get]
 ルームにいる間はtrueです(NetworkClientState == ClientState.Joined)。 More...
 
static int CountOfPlayersOnMaster [get]
 現在、Roomで探せるプレイヤー数です(マスターサーバーで5秒間隔で取得可能)。 More...
 
static int CountOfPlayersInRooms [get]
 あるRoomで、現在このアプリケーションをプレイしているユーザー数(マスターサーバーで5秒間隔で取得可能)。 PhotonNetwork.PlayerList.LengthまたはPhotonNetwork.CurrentRoom.PlayerCountを使用して、自分が参加しているルームのプレイヤー数を取得します。 More...
 
static int CountOfPlayers [get]
 現在このアプリケーションをプレイしているユーザー数(マスターサーバーで5秒間隔で取得可能)。 More...
 
static int CountOfRooms [get]
 現在使用されているRoom数(マスターサーバーで5秒間隔で取得可能)。 More...
 
static bool NetworkStatisticsEnabled [get, set]
 このクライアントの通信量統計を集計するのを有効にするか無効にするか。 More...
 
static int ResentReliableCommands [get]
 (ACK受信前の、ローカルでの繰り返しタイミングのために)繰り返されたコマンドの数。 More...
 
static bool CrcCheckEnabled [get, set]
 Crcチェックが便利なのは、壊れたデータグラムによる問題を検知して回避できることです。接続していない状態で有効化できます。 More...
 
static int PacketLossByCrcCheck [get]
 CrcCheckEnabledがtrueのとき、正しいCRCチェックサムにならず破棄された着信パケットの数を数えます。 More...
 
static int MaxResendsBeforeDisconnect [get, set]
 ACKを受信できず回線切断の引き金になるより前に、定時性メッセージを再送信できる回数。デフォルトは5。 More...
 
static int QuickResends [get, set]
 ネットワーク上でデータ損失した場合、定時性メッセージが即再送されるのは3回までです。 More...
 
static bool UseAlternativeUdpPorts [get, set]
 Public CloudへのUDP接続用の代替ポートに切り替えます。 More...
 
static PhotonView[] PhotonViews [get]
 Photon ビューを取得します。 More...
 
static IPunPrefabPool PrefabPool [get, set]
 Object Poolは、インスタンス化されたオブジェクトインスタンスを保持して再利用するために使用できます。UnityのデフォルトのInstantiateメソッドとDestroyメソッドを置き換えます。 More...
 
static float LevelLoadingProgress [get]
 ネットワークレベルの読み込み進行状況を取得します。値は最初の読み込みまではゼロのままで、読み込みの間は1になります。 PhotonNetwork.LoadLevel()を使用してネットワークレベルの読み込みを開始します More...
 

Detailed Description

PhotonNetworkプラグインを使うためのメインクラスです。 このクラスは静的クラスです。

Member Function Documentation

static void AddCallbackTarget ( object  target)
static

実装されたcallback-interfacesのコールバック用のオブジェクトを登録します。

対象となるコールバックインターフェースは、IConnectionCallbacks, IMatchmakingCallbacks, ILobbyCallbacks, IInRoomCallbacks, IOnEventCallback, IWebRpcCallbackです。

参照: .Net Callbacks

Parameters
targetPUNのLoadBalancingClientからコールバックを取得するために登録するオブジェクト。
static bool AllocateSceneViewID ( PhotonView  view)
static

Master Clientに対して、シーンオブジェクトに妥当なviewIDを割り当てさせることができます。

Returns
static bool AllocateViewID ( PhotonView  view)
static

現在のプレイヤーまたはローカルのプレイヤーにviewIDを割り当てます。

Returns
static bool CloseConnection ( Player  kickPlayer)
static

クライアントに切断を要求します(KICK)。マスタークライアントのみがこれを実行できます。

このイベントを受け取るのは、対象プレイヤーだけです。そのプレイヤーは自動的に切断され、他のプレイヤーもそれを認知します。

Parameters
kickPlayerキックするプレイヤー。
static bool ConnectToBestCloudServer ( )
static

最も低いpingでPhoton Cloudリージョンに接続します(UnityのPingに対応するプラットフォームで)。

PlayerPrefs内のすべてのクラウドサーバーにpingを実行した結果を保存します。初めてこれを呼び出すと、+-2秒かかることがあります。 pingの結果はPhotonNetwork.OverrideBestCloudServer(..)で上書きできます。 初めて使用する場合、この呼び出しには最大2秒かかることがあります。すべてのクラウドサーバーが最良のリージョンを確認するためにpingを実行します。

PUNセットアップウィザードがappIDを設定ファイルに保存し、サーバーアドレス/ポートを適用します。 Photon Cloudに接続するには、有効なAppIdが設定ファイルに含まれている必要があります(Photon Cloudダッシュボードに表示されます)。 https://dashboard.photonengine.com

Photon Cloudへの接続は以下の理由で失敗する可能性があります。

  • 無効なAppId
  • ネットワークの問題
  • 無効なリージョン
  • 購読CCUの制限に達しました
  • その他

基本的に、IConnectionCallbacks.OnDisconnectedコールバックからDisconnectCauseを確認してください。

Returns
このクライアントがpingに基づいてクラウドサーバーに接続しようとしている場合。trueであっても、接続を保証するものではなく、試みをすることを意味します。 
static bool ConnectToMaster ( string  masterServerAddress,
int  port,
string  appID 
)
static

PhotonマスターサーバーにIPアドレス・ポート・appIDとゲーム(クライアント)バージョンで接続します。

Photon Cloudに接続するには、正しいAppId(Photon Cloud Dashboardに表示されています)を設定ファイルに書き込む必要があります。 https://dashboard.photonengine.com

Photon Cloudへの接続が失敗する原因は:

  • 無効なAppId
  • ネットワークの問題
  • 無効なリージョン
  • 購読CCUの制限に達しました
  • その他

基本的に、IConnectionCallbacks.OnDisconnectedコールバックからDisconnectCauseを確認してください。

Parameters
masterServerAddressサーバーのアドレス(あなた所有のものかPhoton Cloudのアドレスかを問いません)
portサーバーの接続ポート。
appIDアプリケーションID(PhotonクラウドはあなたのゲームにGUIDを振ります)
static bool ConnectToRegion ( string  region)
static

選択したPhoton Cloudリージョンに接続します。

static bool ConnectUsingSettings ( )
static

PhotonServerSettingsファイルの設定に従ってPhotonに接続します。

ゲームロジックに状態の変化を認識させるために、IConnectionCallbacksを実装します。 特に、IConnectionCallbacks.ConnectedToMasterserverは、 クライアントがマッチメイキングを実行できるとき、応答するのに役立ちます。

このメソッドはofflineModeを無効にします(どのインスタンスとして作成されたGameObjectも破棄しません)。 このメソッドはisMessageQueueRunningをtrueにします。

Photon設定はPUNウィザードによって作成され、AppId、 Photon Cloudゲームのためのリージョン、サーバーアドレス等を含みます。

設定ファイルを無視するには、関連する値を設定し、 ConnectToMaster、ConnectToRegionを呼び出して接続します。

Photon Cloudに接続するには、正しいAppId(Photon Cloud Dashboardに表示されています)を設定ファイルに書き込む必要があります。 https://dashboard.photonengine.com

Photon Cloudへの接続が失敗する原因は:

  • 無効なAppId
  • ネットワークの問題
  • 無効なリージョン
  • 購読CCUの制限に達しました
  • その他

基本的に、 IConnectionCallbacks.OnDisconnectedコールバックからDisconnectCauseを確認してください。

static bool CreateRoom ( string  roomName,
RoomOptions  roomOptions = null,
TypedLobby  typedLobby = null,
string[]  expectedUsers = null 
)
static

新しいルームを作ります。次をコールバックします:OnCreatedRoomとOnJoinedRoomまたはOnCreateRoomFailed。

成功すると、これはコールバックOnCreatedRoomとOnJoinedRoomを呼び出します(後者の場合は、最初のプレイヤーとして参加させます)。 すべてのエラーの場合に、OnCreateRoomFailedが呼び出されます。

ルーム名がすでに使用されている場合、またはRoomOptionsが互いに衝突している場合は、ルームの作成は失敗します。 さまざまなルームの作成オプションについては、EnterRoomParamsの参照を確認してください。

一意のルーム名を作成したくない場合は、名前としてnullまたは ""を渡すと、サーバーはroomName(文字列としてのGUID)を割り当てます。

このメソッドは、クライアントがMaster Serverに接続されている間にのみ呼び出すことができるので、 OnConnectedToMasterコールバックを実装する必要があります。 戻り値を調べて、操作がサーバー上で呼び出されることを確認してください。 注:このメソッドがfalseを返した場合、コールバックはありません。

PUNのマッチメイキングの詳細: https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby

Parameters
roomName作成するルームの一意の名前。サーバーに名前を生成させるには、nullまたは ""を渡します。
roomOptionsMaxPlayers、初期のカスタムルームプロパティなどのような、ルームの一般的なオプション。 RoomOptionsタイプを参照してください。
typedLobbynullの場合、ルームは現在使用されているロビーに自動的に作成されます(明示的に参加しなかった場合は「デフォルト」になります)。
expectedUsersこのゲームに参加すると予想され、スロットをブロックしたいユーザーのリスト(UserIdによる)。
Returns
操作がキューに入れられて送信される場合。
static void Destroy ( PhotonView  targetView)
static

PhotonViewが静的でないか、このクライアントの制御下ならば、GameObjectとそれに関連したPhotonViewをネットワーク上から破棄します。

ネットワーク上のGameObjectをRoom内で破棄するということが含むのは:

  • サーバーのRoomバッファーからInstantiate(インスタンス作成)コールを削除。
  • PhotonNetwork.Instantiateを呼んで間接的に作成されたPhotonViewに向けてバッファリングされていた、RPCの削除。
  • 他のクライアントに向けて送信されていた、(ネットワークラグに影響された)GameObjectを削除しろというメッセージ。

一般的に、Roomを退室すると、GameObjectは自動的に破棄されます。 Room内にいないときGameObjectを破棄すると、そのDestroyはローカルだけで実行されます。

ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。

このクライアントの制御下になるGameObjectとは:

  • このクライアントにインスタンス作成されて所有されている。
  • Roomを退室したプレイヤーがインスタンス作成したオブジェクトで、Master Clientに制御されている。
  • シーンが所有するゲームオブジェクトで、Master Clientに制御されている。
  • クライアントがRoom内にいないとき、破棄される可能性のあるGameObject。
Returns
何も返しません。問題については、エラーログをチェックしてください。
static void Destroy ( GameObject  targetGo)
static

PhotonViewが静的でないか、このクライアントの制御下ならば、GameObjectとそれに関連したPhotonViewをネットワーク上から破棄します。

ネットワーク上のGameObjectをRoom内で破棄するということが含むのは:

  • サーバーのRoomバッファーからInstantiate(インスタンス作成)コールを削除。
  • PhotonNetwork.Instantiateを呼んで間接的に作成されたPhotonViewに向けてバッファリングされていた、RPCの削除。
  • 他のクライアントに向けて送信されていた、(ネットワークラグに影響された)GameObjectを削除しろというメッセージ。

一般的に、Roomを退室すると、GameObjectは自動的に破棄されます。 Room内にいないときGameObjectを破棄すると、そのDestroyはローカルだけで実行されます。

ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。

このクライアントの制御下になるGameObjectとは:

  • このクライアントにインスタンス作成されて所有されている。
  • Roomを退室したプレイヤーがインスタンス作成したオブジェクトで、Master Clientに制御されている。
  • シーンが所有するゲームオブジェクトで、Master Clientに制御されている。
  • クライアントがRoom内にいないとき、破棄される可能性のあるGameObject。
Returns
何も返しません。問題については、エラーログをチェックしてください。
static void DestroyAll ( )
static

Room内のGameObject・PhotonView・それらの発したRPCをすべてネットワーク上から破棄します。サーバーにバッファリングされたすべてを削除します。これを呼べるのは、Master Client(全員にむけて)だけです。

これを呼べるのは、Master Client(全員にむけて)だけです。 Destroyメソッドとは違い、これはサーバーのRoomバッファーのすべてを削除します。 ゲームがInstantiateとRPCコールの前にすべてをバッファリングするので、それもサーバーから削除されます。

すべて破棄することは以下を含みます:

  • サーバーのRoomバッファーにあるすべて(Instantiate, RPC, その他)を削除します。
  • 他のクライアントに、ローカルのすべてを破棄するというメッセージを送信します(ネットワーク・ラグの影響を受けます)。

ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。

Returns
何も返しません。問題については、エラーログをチェックしてください。
static void DestroyPlayerObjects ( int  playerId,
bool  localOnly 
)
static

すべてのInstantiatesとRPCをローカルで破棄し、(localOnlyでない場合)EvDestroy(player)を送信し、サーバーバッファ内の関連イベントをクリアします。

static void DestroyPlayerObjects ( Player  targetPlayer)
static

ターゲットプレイヤーのGameObject・PhotonView・それらの発したRPCをすべてネットワーク上から破棄します。これを呼べるのは、ローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)です。

ネットワーク上のGameObjectをRoom内で破棄するということが含むのは:

  • サーバーのRoomバッファーからInstantiate(インスタンス作成)コールを削除。
  • PhotonNetwork.Instantiateを呼んで間接的に作成されたPhotonViewに向けてバッファリングされていた、RPCの削除。
  • 他のクライアントに向けて送信されていた、(ネットワークラグに影響された)GameObjectを削除しろというメッセージ。

ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。

Returns
何も返しません。問題については、エラーログをチェックしてください。
static void DestroyPlayerObjects ( int  targetPlayerId)
static

(IDで指定した)プレイヤーのGameObject・PhotonView・それらの発したRPCをすべてネットワーク上から破棄します。これを呼べるのは、ローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)です。

ネットワーク上のGameObjectをRoom内で破棄するということが含むのは:

  • サーバーのRoomバッファーからInstantiate(インスタンス作成)コールを削除。
  • PhotonNetwork.Instantiateを呼んで間接的に作成されたPhotonViewに向けてバッファリングされていた、RPCの削除。
  • 他のクライアントに向けて送信されていた、(ネットワークラグに影響された)GameObjectを削除しろというメッセージ。

ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。

Returns
何も返しません。問題については、エラーログをチェックしてください。
static void Disconnect ( )
static

このクライアントをPhotonサーバから切断します。これは、ルームを離れ、完了時にOnDisconnectedを呼び出すプロセスです。

切断すると、クライアントは「切断中」のメッセージをサーバーに送信します。 これはあなたと同じルームにいるプレイヤーへの退室/切断メッセージをスピードアップします(そうでなければサーバーはこのクライアントの接続をタイムアウトさせてしまいます)。 OfflineModeで使用すると、状態変更とイベント呼び出しのOnDisconnectedは即時に行われます。 オフラインモードもfalseに設定されています。 切断されると、クライアントは再度接続できるようになります。 ConnectUsingSettingsを使用してください。

static void FetchServerTimestamp ( )
static

サーバーのタイムスタンプを更新します(非同期操作、往復します)。

不適切な接続によってタイムスタンプが使用できない、または不正確になった場合に役立ちます。

static bool FindFriends ( string[]  friendsToFind)
static

フレンドのリストのためにルームとオンラインのステータスを要求し、PhotonNetwork.Friendsに結果を保存します。

選択されたユーザーの一覧にプレイされているルームを見つけるためにMaster Serverでのみ機能します。

利用可能な場合、結果はPhotonNetwork.Friendsに保存されます。 そのリストはOpFindFriendsの最初の使用時に初期化されます(それ以前はnullです)。 リストを更新するには、FindFriendsをもう一度呼び出します(5秒、または10秒か20秒)。

ユーザーはPhotonNetwork.AuthValuesに一意のuserIdを設定して自分自身を識別します。 これがどのように設定および使用されるかについては、AuthenticationValuesの解説を参照してください。

フレンドのリストは他の情報源から取得する必要があります(Photonでは提供されていません)。

内部: サーバーの応答には2つの配列の情報が含まれます(各インデックスは要求のフレンドと一致します)。 ParameterCode.FindFriendsResponseOnlineList =オンライン状態のbool[] ParameterCode.FindFriendsResponseRoomIdList = ルーム名のstring[](ルームにない場合は空の文字列)

Parameters
friendsToFindフレンドの配列(一意なplayerNameかAuthValuesを付けるよう注意)
Returns
この操作が送信されたかどうか(接続している必要があります。いつであってもリクエストは同時には1つだけ可能です)。
static HashSet<GameObject> FindGameObjectsWithComponent ( Type  type)
static

特定の型を持つComponentを伴うGameObjectを検索します(FindObjectsOfTypeを使います)。

Parameters
typeTypeはComponentである必要があります。
Returns
定の型のComponentを持つGameObjectのHashSet
   static bool GetCustomRoomList ( TypedLobby  typedLobby,
string  sqlLobbyFilter 
)
static

サーバからゲームのカスタムリストを取得し、SQLのような「where」節に一致させて、OnReceivedRoomListUpdateコールバックをトリガーします。

オペレーションは、SqlLobbyタイプのロビーでのみ使用できます。注:そのロビーに参加する必要はありません。 これは非同期リクエストです。

注:照会するためにロビーに参加する必要はありません。ルームはロビーに「添付」する必要があります。 これはCreateRoom、JoinOrCreateRoomなどのtypedLobbyパラメータを介して実行できます。終了すると、OnReceivedRoomListUpdateが呼び出されます。

https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby/::sql_lobby_type

Parameters
typedLobby照会するロビー。SqlLobby型でなければなりません。
sqlLobbyFilterSQLクエリ宣言。
Returns
オペレーションを送信できる場合(接続が必要)
static int GetPing ( )
static

Photonサーバーへの現在の往復時間。

Returns
往復時間(サーバーと往復)。
static bool JoinLobby ( )
static

マスターサーバー上で、デフォルトロビーに入ります。そのロビーでは、現在使用中のRoom一覧をみることができます。

Room一覧はサーバーから送信されて更新されます。 PhotonNetwork.GetRoomList()を使ってアクセスできるのは、キャッシュされた一覧です。

Room毎に、入室前にそのRoomが満室かそうでないかをチェックする必要があります。Photonは満室のRoom一覧も用意しますが、 Roomを閉じる、または隠すと(room.open = falseとroom.visible = false)その限りではありません。

うまくいけば、クライアントにランダムなゲームに参加させることができます。以下に詳細が記述されています。 https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby

現在のプレイヤーやRoom数は、ロビーに入らなくても見ることができます (ただしマスターサーバー上にいる必要があります)。countOfPlayers, countOfPlayersOnMaster, countOfPlayersInRooms, countOfRoomsを使ってください。

複数のロビーを使用して部屋リストを短くすることができます。 JoinLobby(TypedLobby lobby)を参照してください。 新規Roomを作成するとき、そのRoomは現在使っているロビーかデフォルトロビーに「所属」させられます。

JoinRandomRoomをロビーに入らずに使うことができます。

static bool JoinLobby ( TypedLobby  typedLobby)
static

マスターサーバー上でロビーに入って、有効なRoomの一覧を得ることができます。

Room一覧はサーバーから送信されて更新されます。 PhotonNetwork.GetRoomList()を使ってアクセスできるのは、キャッシュされた一覧です。

どのクライアントもその場でロビーを構成することができます。複数のRoomを複数のロビーに分割すると、 個々の一覧を短くできます。しかし、一覧が多すぎると、マッチメイキングが面倒になるかもしれません。

うまくいけば、作るロビーを一定の数に抑えることができます。たとえば、 ゲームモード毎にロビーを作ります:king of the hill向けに"koth"、free for all向けに"ffa"など。

現在はロビーの一覧はありません。

SQL型のロビーがあると、ランダム・マッチメイキングに異なるフィルタリングを導入できます。 これはスキルをベースにしたゲームに向いているかもしれません。しかしSQLロビーにおいても、プロパティを名前でフィルターという慣習も押さえておく必要があるでしょう! どちらも、以下にリンクしたマッチメイキング文書に説明してあります。

うまくいけば、クライアントにランダムなゲームに参加させることができます。以下に詳細が記述されています。 https://doc.photonengine.com/en-us/realtime/current/reference/matchmaking-and-lobby

Room毎に、入室前にそのRoomが満室かそうでないかをチェックする必要があります。Photonは満室のRoom一覧も用意しますが、 Roomを閉じる、または隠すと(room.open = falseとroom.visible = false)その限りではありません。

現在のプレイヤーやRoom数は、ロビーに入らなくても見ることができます (ただしマスターサーバー上にいる必要があります)。countOfPlayers, countOfPlayersOnMaster, countOfPlayersInRooms, countOfRoomsを使ってください。新規Roomを作成するとき、そのRoomは現在使っているロビーかデフォルトロビーに「所属」させられます。 JoinRandomRoomをロビーに入らずに使うことができます。

Parameters
typedLobby型のあるロビー(名前と型が必要)
static bool JoinOrCreateRoom ( string  roomName,
RoomOptions  roomOptions,
TypedLobby  typedLobby,
string[]  expectedUsers = null 
)
static

特定のルームに名前で参加し、必要に応じてルームを作成します。次をコールバックします:OnJoinedRoomまたはOnJoinRoomFailed。

プレイヤーがマッチングするルームの名前を作成するのに役立ちます: 関係するすべてのクライアントが同じメソッドを呼び出し、最初のプレイヤーがルームを作成します。

成功すると、クライアントは指定されたルームに入ります。 ルームを作成するクライアントは、OnCreatedRoomとOnJoinedRoomの両方をコールバックします。 既存のルームに参加するクライアントはOnJoinedRoomだけをコールバックします。 すべてのエラーケースで、OnJoinRoomFailedが呼び出されます。

ルームが満室な場合、閉じられている場合、またはユーザーがすでに そのルームにいる場合(userIdで確認)、ルームへの参加は失敗します。

ルームに戻るにはOpRejoinRoomを使います。

このメソッドは、クライアントがMaster Serverに接続されている間にのみ呼び出すことができるので、 OnConnectedToMasterコールバックを実装する必要があります。 戻り値を調べて、操作がサーバー上で呼び出されることを確認してください。 注:このメソッドがfalseを返した場合、コールバックはありません。

roomOptionsでルームプロパティを設定した場合、そのルームがすでに存在している場合は無視されます。 これにより、遅れて参加するプレイヤーによりルームのプロパティが変更されることを回避できます。

expectedUsersの配列を定義するか、これらのユーザーのためにルームのプレイヤースロットをブロックすることができます。 Photonの対応する機能は「Slot Reservation」と呼ばれ、docページにあります。

PUNのマッチメイキングの詳細: https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby

Parameters
roomName参加するルームの名前。 null以外でなければなりません。
roomOptionsルームがまだ存在しない場合のオプション。そうでない場合、これらの値は無視されます。
typedLobby新しいルームをリストに追加したいロビー。ルームが存在して参加された場合は無視されます。
expectedUsersこのゲームに参加すると予想され、スロットをブロックしたいユーザーのリスト(UserIdによる)。
Returns
操作がキューに入れられて送信される場合。
static bool JoinRandomRoom ( )
static

フィルタに一致するランダムなルームに参加します。次をコールバックします:OnJoinedRoomまたはOnJoinRandomFailed。

ランダムマッチメイキングに使用されます。 opJoinRandomRoomParamsで定義された特定のプロパティを持つルームや任意のルームに参加することができます。

この操作は一致するルームがない場合や利用可能なルームがない場合は失敗します(すべてのルームが閉じている、別のロビーにある、または表示されていない場合)。 見つかったルームに実際に参加するときにも失敗する可能性があります。ルームはいつでも閉じられたり、満室や空室になる可能性があります。

このメソッドは、クライアントがMaster Serverに接続されている間にのみ呼び出すことができるので、 OnConnectedToMasterコールバックを実装する必要があります。 戻り値を調べて、操作がサーバー上で呼び出されることを確認してください。 注:このメソッドがfalseを返した場合、コールバックはありません。

PUNのマッチメイキングの詳細: https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby

static bool JoinRandomRoom ( Hashtable  expectedCustomRoomProperties,
byte  expectedMaxPlayers 
)
static

フィルタに一致するランダムなルームに参加します。次がコールバックされます:OnJoinedRoomまたはOnJoinRandomFailed。

ランダムマッチメイキングに使用されます。 opJoinRandomRoomParamsで定義された特定のプロパティを持つルームや任意のルームに参加することができます。

この操作は一致するルームがない場合や利用可能なルームがない場合は失敗します(すべてのルームが閉じている、別のロビーにある、または表示されていない場合)。 見つかったルームに実際に参加するときにも失敗する可能性があります。ルームはいつでも閉じられたり、満室や空室になる可能性があります。

このメソッドは、クライアントがMaster Serverに接続されている間にのみ呼び出すことができるので、 OnConnectedToMasterコールバックを実装する必要があります。 戻り値を調べて、操作がサーバー上で呼び出されることを確認してください。 注:このメソッドがfalseを返した場合、コールバックはありません。

PUNのマッチメイキングの詳細: https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby

Parameters
expectedCustomRoomPropertiesこれらのカスタムプロパティ(文字列のキーと値)に一致するルームのフィルタ。無視するには、nullを渡します。
expectedMaxPlayers特定のmaxplayer設定をフィルタリング。 maxPlayerの値を受け入れるには0を使用してください。
Returns
操作がキューに入れられて送信される場合。
static bool JoinRandomRoom ( Hashtable  expectedCustomRoomProperties,
byte  expectedMaxPlayers,
MatchmakingMode  matchingType,
TypedLobby  typedLobby,
string  sqlLobbyFilter,
string[]  expectedUsers = null 
)
static

フィルタに一致するランダムなルームに参加します。次がコールバックされます:OnJoinedRoomまたはOnJoinRandomFailed。

ランダムマッチメイキングに使用されます。 opJoinRandomRoomParamsで定義された特定のプロパティを持つルームや任意のルームに参加することができます。

この操作は一致するルームがない場合や利用可能なルームがない場合は失敗します(すべてのルームが閉じている、別のロビーにある、または表示されていない場合)。 実際に見つかったルームに参加するときにも失敗する可能性があります。ルームはいつでも閉じられたり、満室または空室になる可能性があります。

このメソッドは、クライアントがMaster Serverに接続されている間にのみ呼び出すことができるので、 OnConnectedToMasterコールバックを実装する必要があります。 戻り値を調べて、操作がサーバー上で呼び出されることを確認してください。 注:このメソッドがfalseを返した場合、コールバックはありません。

PUNのマッチメイキングの詳細: https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby

Parameters
expectedCustomRoomPropertiesこれらのカスタムプロパティ(文字列のキーと値)に一致するルームをフィルタします。無視するには、nullを渡します。
expectedMaxPlayers特定のmaxplayer設定をフィルタリングします。 maxPlayerの値を受け入れるには0を使用してください。
matchingType利用可能なマッチメイキングアルゴリズムを1つ選択します。オプションについてはMatchmakingMode enumを参照してください。
typedLobbyルームを調べたいロビー。デフォルトのロビーを使用するには、nullを渡します。そのロビーに参加せず、ロビーのプロパティも設定しません。
sqlLobbyFilterSQL型のロビー用のフィルタ文字列。
expectedUsersこのゲームに参加すると予想され、スロットをブロックしたいユーザーのリスト(UserIdによる)。
Returns
操作がキューに入れられて送信される場合。
static bool JoinRoom ( string  roomName,
string[]  expectedUsers = null 
)
static

名前でルームに参加します。コールバックされます:OnJoinedRoomまたはOnJoinRoomFailed。

ロビーを使うときや、プレイヤーがフレンドをフォローしたりお互いを招待したりするときに便利です。

成功すると、クライアントは指定されたルームに入り、OnJoinedRoomを介してコールバックします。 すべてのエラーケースで、OnJoinRoomFailedが呼び出されます。

ルームが満室な場合、閉じられている場合、またはユーザーがすでに そのルームにいる場合(userIdで確認)、ルームへの参加は失敗します。

ルームに戻るにはOpRejoinRoomを使います。 プレイヤーがお互いを招待し、誰が最初に対応するのかがわからない場合は、代わりにOpJoinOrCreateRoomを使用します。

このメソッドは、クライアントがMaster Serverに接続されている間にのみ呼び出すことができるので、 OnConnectedToMasterコールバックを実装する必要があります。 戻り値を調べて、操作がサーバー上で呼び出されることを確認します。 注:このメソッドがfalseを返した場合、コールバックはありません。

PUNのマッチメイキングの詳細: https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby

OnJoinRoomFailed OnJoinedRoom

Parameters
roomName参加するルームの一意の名前。
expectedUsersこのゲームに参加すると予想され、スロットをブロックしたいユーザーのリスト(UserIdによる)。
Returns
操作がキューに入れられて送信される場合。
static bool LeaveLobby ( )
static

ロビーから出ます。有効なRoomについて更新を受け取るのを停止します。

これはPhotonNetwork.lobbyをリセットしません! これのおかげで、 特定のロビーに後から入りやすくなります。

countOfPlayers, countOfPlayersOnMaster, countOfPlayersInRooms, countOfRoomsの値は ロビーにいなくてさえも受け取ります。

JoinRandomRoomをロビーに入らずに使うことができます。

static bool LeaveRoom ( bool  becomeInactive = true)
static

現在のルームを出て、マスターサーバーに戻って、ルームに参加したりルームを作成したりできます(備考を参照)。

autoCleanUpをfalseに変更しない限り、これはPhotonViewですべての(ネットワーク)GameObjectをクリーンアップします。 マスターサーバーに戻ります。

OfflineModeでは、ローカルの「偽」のルームがクリーンアップされ、OnLeftRoomがすぐに呼び出されます。

playerTTL < 0のあるルームでLeaveRoomはクライアントを非アクティブにするだけです。 プレイヤーはルームのプレイヤーリストにとどまり、後で戻ることができます。becomeInactiveを故意にfalseに設定するのは、 playerTTLが戻ることを許可していても、ルームを放棄することになります。

playerTTL == 0のルームでは、非アクティブになっても効果はありません(クライアントはすぐにルームから除去されます)。

Parameters
becomeInactiveこのクライアントがplayerTTLのルームで非アクティブになった場合<0.デフォルトはtrueです。
static void LoadLevel ( int  levelNumber)
static

ネットワークメッセージキューを一時停止するためにレベルの読み込みをラップします。必要に応じて、ルームで読み込まれたレベルを同期します。

ルームに読み込まれたレベルを同期するには、PhotonNetwork.AutomaticallySyncSceneをtrueに設定します。 その後、ルームのマスタークライアントは、読み込まれたレベルをルーム内の他のすべてのプレイヤーと同期します。

レベルを読み込んでいる間、他のプレイヤーによって受信されたメッセージを送信するべきではありません。 このメソッドは、PhotonNetwork.IsMessageQueueRunning = falseを設定し、レベルが読み込まれたときにキューを 有効にすることによって、それを処理します。

別のシーン(同じGameObjectsとPhotonViewが含まれていない)を読み込む前に、RPCを起動しないように注意してください。 これはOnJoinedRoomで呼び出すことができます。

これはSceneManager.LoadSceneAsync()を使用します。

PhotonNetwork.LevelLoadingProgressを使用してLevelLoadingの進行状況を確認します(-1は読み込まれていないことを意味します。0から1の範囲です。)

Parameters
levelNumber読み込むレベルの番号。レベル番号を使用するときは、それらがすべてのクライアントで同一であることを確認してください。
static void LoadLevel ( string  levelName)
static

ネットワークメッセージキューを一時停止するためのレベルの読み込みをラップします。必要に応じて、ルームで読み込まれたレベルを同期します。

レベルを読み込んでいる間、他のプレイヤーによって受信されたメッセージを送信するべきではありません。 このメソッドは、PhotonNetwork.IsMessageQueueRunning = falseを設定し、 レベルが読み込まれたときにキューを有効にすることによって、それを処理します。

ルームに読み込まれたレベルを同期するには、PhotonNetwork.AutomaticallySyncSceneをtrueに設定します。 その後、ルームのマスタークライアントは、読み込まれたレベルをルーム内の他のすべてのプレイヤーと同期します。

別のシーン(同じGameObjectsとPhotonViewが含まれていない)を読み込む前に、RPCを起動しないように注意してください。 これはOnJoinedRoomで呼び出すことができます。

これはSceneManager.LoadSceneAsync()を使用します。

PhotonNetwork.LevelLoadingProgressを使用してLevelLoadingの進行状況を確認します(-1は読み込まれていないことを意味します。0から1の範囲です。)

Parameters
levelName読み込むレベルの名前。同じルームにいるすべてのクライアントが利用できることを確認してください。
static void NetworkStatisticsReset ( )
static

トラフィック統計をリセットして再度有効にします。

static string NetworkStatisticsToString ( )
static

NetworkStatisticsEnabledが統計を収集するために使用された場合にのみ利用可能です。

Returns
重要なネットワーク統計を含む文字列。
static void OpCleanActorRpcBuffer ( int  actorNumber)
static

他のプレイヤーのRPCを削除します(マスターとして使用される)。 これによりローカルキャッシュはクリーンアップされません。プレイヤーのRPCを忘れてインスタンス化するようにサーバーに伝えるだけです。

Parameters
actorNumber
static void OpCleanRpcBuffer ( PhotonView  view)
static

PhotonViewのサーバのRPCをクリーンアップします(さらなるチェックなしで)。

static void OpRemoveCompleteCacheOfPlayer ( int  actorNumber)
static

RPCやインスタンスを削除する代わりに、アクターによってキャッシュされたものをすべて削除します。

Parameters
actorNumber
static bool RaiseEvent ( byte  eventCode,
object  eventContent,
RaiseEventOptions  raiseEventOptions,
SendOptions  sendOptions 
)
static

Room内の、一からカスタマイズ可能なイベントを送信します。イベントは少なくともEventCode (0..199)と内容で構成されています。

イベントを受け取るには、任意のクラスにIOnEventCallbackを実装し、それをPhotonNetwork.AddCallbackTargetを介して登録します。 IOnEventCallback.OnEventを参照してください。

eventContentは任意です。設定されている場合、eventContentは「直列化可能型」でなければありません。 これはクライアントが基本的にbyte[]に​​変換できるものです。 UnityのVector2、Vector3、Quaternionなど、 最も基本的なタイプとそれらの配列がサポートされています。トランスフォームは対応されていません。

自分のクラスを“シリアライズ可能な型”にするには、CustomTypes.csの例に従ってください。

RaiseEventOptionsにはいくつかの(あまり直感的ではない)コンビネーションルールがあります: targetActors(PhotonPlayer.IDの値の配列)をセットすると、receiversパラメーターは無視されます。 イベントキャッシュを使うと、targetActor(ターゲットプレイヤー)・receiver(受信者)・interestGroup(インタレスト・グループ)は使われません。バッファリングされたイベントを使用します。 もしcachingOption removeFromRoomCacheを使うと、eventCodeと内容は実際には送信されず、フィルターとして使われます。

Parameters
eventCode1バイトでイベント型を表します。アクションごとにコードを変えて使いたいとか、どのコンテントか予想できるシグナルにしたくなるかもしれません。使える値の範囲は 0..199 です。
eventContentいくつかのシリアライズ可能なオブジェクト、たとえばstring, byte, integer, float(など)とその配列。Hashtableにバイトキーも変数変数内容を送信するのによいです。
raiseEventOptionsより複雑なイベントの使用を可能にします。nullの場合、RaiseEventOptions.Defaultが使用されます(これで問題ありません)。
sendOptions信頼性の高い、暗号化などのオプションを送信します。
Returns
イベントを送信できなかった場合はfalseです。
static bool Reconnect ( )
static

切断後にマスターサーバーに再接続するために使用できます。

接続が失われた後、これを使ってクライアントをリージョンのMaster Serverに再度接続できます。 入っているルームの名前をキャッシュし、ゲームに戻るにはRejoinRoom(roomname)を使います。 一般的な使用例:iOSデバイスのロックボタンを押すと、すぐに切断されます。

static bool ReconnectAndRejoin ( )
static

クライアントがゲームプレイ中に接続を失ったとき、このメソッドはルームへの再接続と再参加を試みます。

このメソッドは、以前PUNがいたルームをホストしていたゲームサーバーに直接再接続します。 その間にルームがシャットダウンされた場合、PUNはOnJoinRoomFailedを呼び出して、このクライアントをMaster Serverに返します。

このクライアントが再接続と再参加を試みる場合(条件が満たされる場合)、戻り値を確認します。 ReconnectAndRejoinがfalseを返した場合でも、Reconnect and Rejoinを試すことができます。

PhotonNetwork.RejoinRoomと同様に、これにはプレイヤーごとに固有のID(UserID)を使用する必要があります。

ルームに再参加してもプレイヤーのプロパティーは送信されません。代わりに、クライアントはサーバーから最新のものを受け取ります。 新しいプレイヤーのプロパティを設定したい場合は、一度再参加してください。

Returns
戻るべき既知のルームまたはゲームサーバーがない場合はfalse。その後、このクライアントはReconnectAndRejoinを試行しません。
static bool RejoinRoom ( string  roomName)
static

roomNameでルームに再参加します(内部でuserIDを使用して戻ります)。次をコールバックします:OnJoinedRoomまたはOnJoinRoomFailed。

接続が切断された後、クライアントが早く再接続した場合は、ルームに戻ってプレーを続けることができます。 Reconnect()とこのメソッドを使用してください。 入っているルームの名前をキャッシュし、ゲームに戻るにはRejoinRoom(roomname)を使います。

注:ルームにも参加できるようにするには、ユーザーIDを使用する必要があります。 RoomOptions.PlayerTtlも設定する必要があります。

重要:Instantiate()とRPCの使用はまだ対応されていません。 PhotonViewsを使っている場合、PhotonViewsの所有権規則がゲームへのシームレスな復帰を妨げます。 代わりに、カスタムプロパティとRaiseEventをイベントキャッシュと共に使用します。

一般的な使用例:iOSデバイスのロックボタンを押すと、すぐに切断されます。

ルームに再参加してもプレイヤーのプロパティーは送信されません。代わりに、クライアントはサーバーから最新のものを受け取ります。 新しいプレイヤーのプロパティを設定したい場合は、一度再参加します。

static void RemoveCallbackTarget ( object  target)
static

実装されたコールバックインターフェースのコールバックからターゲットオブジェクトを削除します。

対象となるコールバックインターフェースは、IConnectionCallbacks、IMatchmakingCallbacks、 ILobbyCallbacks、IInRoomCallbacks、IOnEventCallback、IWebRpcCallbackです。

参照: .Net Callbacks

Parameters
targetコールバックの取得から登録解除するオブジェクト。
static void RemovePlayerCustomProperties ( string[]  customPropertiesToDelete)
static

「この」プレイヤーの独自プロパティをローカルで削除します。重要:この変更は同期されません! この挙動はRoomを切り替えるとき便利です。

このメソッドは注意して使ってください。これはプレイヤーのあいだに状態の矛盾を生み出します! これはplayer.customPropertiesをローカルで変更するだけです。 これが有用なのは、複数のゲームのあいだで独自プロパティ(それらに格納されたターンやキルなど)を削除できる点です。

SetPlayerCustomProperties()は同期しますが、Room内にいるとき値をnullにセットするのに使うこともできます。 これはRoom内で「削除された」と見なすことができます。

customPropertiesToDeleteがnullかエントリー0なら、独自プロパティすべては削除されます(新しいHashtableに置き換わります)。 削除するキーを指定すると、それはHashtableから削除されますが、ほかのキーは影響を受けません。

Parameters
customPropertiesToDelete削除する独自プロパティのキーの一覧。remarksをご覧ください。
static void RemoveRPCs ( Player  targetPlayer)
static

ターゲットプレイヤーに送信され、サーバーでバッファリングされたRPCを、すべてネットワーク上から破棄します。これを呼べるのはローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)のみです。

このメソッドは以下のどちらも必要です:

  • ターゲットプレイヤーのクライアントであること。
  • このクライアントはMaster Client(PhotonPlayerのRPCをすべて削除可能)であること。

ターゲットプレイヤーがRPCを呼んだとき同時に呼ばれてもいたら、ネットワーク遅延によってそれが バッファリングされるか、ほかと同じくクリアされるかが決まります。

Parameters
targetPlayerこのプレイヤーのバッファリングされたRPCはサーバーのバッファーから削除されます。
static void RemoveRPCs ( PhotonView  targetPhotonView)
static

targetPhotonViewを通して送信される、サーバーでバッファリングされたRPCを、すべて削除します。Master Clientと、targetPhotonViewの所有者が、これを呼ぶことができます。

このメソッドは以下のどちらも必要です:

  • このクライアントはtargetPhotonViewの所有者(インスタンス作成した)であること。
  • このクライアントはMaster Client(PhotonPlayerのRPCをすべて削除可能)であること。
Parameters
targetPhotonViewこのPhotonViewのバッファリングされたRPCはサーバーのバッファーから削除されます。
static void RemoveRPCsInGroup ( int  group)
static

これがマスタークライアントである場合、または個々のPhotonViewを制御している場合は、targetGroupで送信されたサーバーからすべてのバッファ付きRPCを削除します。

この方法には以下のいずれかが必要です:

  • このクライアントがマスタークライアントであること(グループごとにRPCを削除できる)。
  • 他のクライアント:各PhotonViewがこのクライアントの管理下にある場合はチェックされます。それらのRPCだけが削除されます。
Parameters
groupすべてのRPCを削除するインタレストグループ。
static void SendAllOutgoingCommands ( )
static

呼び出されたばかりのRPCとInstantiatesを即時に送信するために使用できます。それらは他のプレイヤーに送信されます。

これは、レベルを読み込んでから自分で読み込むためにRPCを実行する場合に便利です。 読み込み中、他の人にはRPCは送信されません。そのため、「読み込み」RPCが遅れることになります。 RPCを "others"に送信してこのメ​​ソッドを使用し、 メッセージキューを無効にして(IsMessageQueueRunningによって)、読み込むことができます。

static void SetInterestGroups ( byte[]  disableGroups,
byte[]  enableGroups 
)
static

特定のインタレストグループでの受信を有効/無効にします(PhotonViewに適用される)。

クライアントは、どのインタレストグループに興味があるかをサーバに伝えることができます。 サーバーは、それらのインタレストグループのイベントのみをそのクライアントに転送します(帯域幅とパフォーマンスの節約)。

参照: https://doc.photonengine.com/en-us/pun/v2/gameplay/interestgroups

参照: https://doc.photonengine.com/en-us/pun/v2/demos-and-tutorials/package-demos/culling-demo

Parameters
disableGroups無効にするインタレストグループ(またはnull)。
enableGroups有効にするインタレストグループ(またはnull)。
static void SetInterestGroups ( byte  group,
bool  enabled 
)
static

指定されたインタレストグループ(PhotonViewsに適用)で受信を有効/無効にします。

クライアントは関心のあるインタレストグループをサーバに伝えることができます。 サーバは、そのクライアントへのインタレストグループのイベントのみを転送します(バンド幅とパフォーマンスを節約します)。

参照: https://doc.photonengine.com/en-us/pun/v2/gameplay/interestgroups

参照: https://doc.photonengine.com/en-us/pun/v2/demos-and-tutorials/package-demos/culling-demo

Parameters
group無効にする(またはnullにする)関心のグループ。
enabled有効にする(またはnullにする)関心のグループ。
static void SetLevelPrefix ( byte  prefix)
static

後からインスタンス化されたPhotonViewのレベルプレフィックスを設定します。1つしか必要ない場合は設定しないでください。

重要:複数レベルのプレフィックスを使用しない場合は、この値を設定しないでください。 デフォルト値はトラフィック外で最適化されています。

これは既存のPhotonViewには影響しません(既存のPhotonViewではまだ変更できません)。

異なるレベルのプレフィックスで送信されたメッセージは受信されますが実行されません。 これはRPC、インスタンス化、および同期に影響します。

PUNはこの値をリセットしません。自身で行う必要があります。

Parameters
prefix最大値はshort.MaxValue = 255です
static bool SetMasterClient ( Player  masterClientPlayer)
static

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

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

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

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

PhotonNetwork.MasterClientもご覧ください。

v3サーバーの場合: ReceiverGroup.MasterClient(RPCで使用可能)はこれによる影響を受けません(ルーム内の最も低いplayer.IDを指します)。 この列挙値を使用しないでください(代わりに特定のプレイヤーに送ってください)。

現在のマスタークライアントが退室すると、PUNは「最低のプレイヤーID」で新しいものを検出します。この場合、OnMasterClientSwitchedを実装してコールバックを取得します。 PUNで選択されたマスタークライアントは新しいものを割り当てるかもしれません。

マスター指定の無限ループを作らないように注意してください!カスタムマスタークライアントを選択する際、誰が実際にこのプレイヤーを指定したかに関わらず、 すべてのクライアントは同じプレイヤーを指すべきです。

ローカルではマスタークライアントが即座に切り替えられ、リモートクライアントはイベントを受け取ります。これは、現在のマスタークライアントが去ったときのように、 一時的にゲームのマスタークライアントが不在であることを意味します。

Master Clientを手動で切り替えるときは、他のMaster Clientと同様、 このユーザーが退室して動作しない可能性があるのでご注意ください。

Parameters
masterClientPlayer次のマスタークライアントになるプレイヤー。
Returns
この操作が実行できなかった場合はfalseです。ルームにいる必要があります(OfflineMode内ではなく)。
static void SetPlayerCustomProperties ( Hashtable  customProperties)
static

この(ローカル)プレイヤーのプロパティをセットして、他のプレイヤーにも同期します(直接編集しないでください)。

Room内では、プロパティは他のプレイヤーに同期されています。Roomに入室すると、 CreateRoom, JoinRoom, JoinRandomRoomのすべてが自分のプレイヤーの独自プロパティに適用されます。 Hashtable全体が送信されます。更新されたキー/値のみをセットすると通信量を最小化できます。

Hashtableがnullなら、その独自プロパティはクリアされます。 独自プロパティは自動ではクリアされないので、変更しない限りは、次のRoomに持ち越されます。PhotonNetwork.player.customPropertiesを編集してプロパティをセットしないでください!

Parameters
customPropertiesstring型のキーだけをこのハッシュテーブルに使用できます。もしnullなら独自プロパティはすべて削除されます。
static void SetSendingEnabled ( byte  group,
bool  enabled 
)
static

特定のグループで送信を有効/無効にする(PhotonViewに適用される)

Photonサーバーサイドとはやり取りしません。 ブロックされたグループに送信された場合に更新を抑制するためのクライアント側の設定です。

この設定は、更新がサーバーや他の誰にも届かないことを意味するため、特に有用ではありません。 注意して使用してください。

Parameters
group影響を与えるインタレストグループ。
enabledグループへの送信が有効かどうかを設定します。
static void SetSendingEnabled ( byte[]  disableGroups,
byte[]  enableGroups 
)
static

特定のグループでの送信を有効/無効にします(PhotonViewに適用される)。

Photonサーバーサイドとはやり取りしません。 ブロックされたグループに送信された場合に更新を抑制するためのクライアント側の設定です。

この設定は、更新がサーバーや他の誰にも届かないことを意味するため、特に有用ではありません。 注意して使用してください。

Parameters
enableGroups送信を有効にするインタレストグループ(またはnull)。
disableGroups送信を無効にするインタレストグループ(またはnull)。
static bool WebRpc ( string  name,
object  parameters,
bool  sendAuthCookie = false 
)
static

この操作はPhotonにあなたのカスタムWebサービスを与えられたパラメータで名前(パス)で呼び出すようにさせます。

これはサーバーサイドの機能で、使用前にPhoton Cloud Dashboardで設定する必要があります。 https://doc.photonengine.com/en-us/pun/v2/gameplay/web-extensions/webrpc パラメータはJSon形式に変換されますので、パラメータに互換性があることを確認してください。

応答を取得する方法についてはPhoton.Realtime.IWebRpcCallback.OnWebRpcResponse を参照してください。

OperationResponseはWebRPCを呼び出すことができるかどうかを伝えるだけです。 応答の内容には、Webサービスが送信した値とエラー/成功コードが含まれています。 Webサービスが失敗した場合、エラーコードとデバッグメッセージは通常、 OperationResponseの中にあります。

T WebRpcResponseクラスはWebRPCから最も価値のあるコンテンツを抽出する ヘルパークラスです。

コールバックの実装例:

public void OnWebRpcResponse(OperationResponse response)
{
    WebRpcResponse webResponse = new WebRpcResponse(operationResponse);
    if (webResponse.ReturnCode != 0) { //...
    }
    switch (webResponse.Name) { //...
    }
    // 等々
}

Member Data Documentation

float BackgroundTimeout = 60.0f
static

UnityのOnApplicationPause(true)が呼ばれた後の接続を保持するためのフォールバックスレッドをPUNがどのくらいの期間動かすかを定義します。デフォルトは60秒です

しばらくしたら非アクティブなアプリケーション/接続を切断した上で、ユーザーが呼び出しなどを受けられるようにすることをお勧めします。 合理的なバックグラウンドタイムアウトは60秒としています。

タイムアウトを処理するには、次のように実装:通常通りOnDisconnectedFromPhoton()。 アプリケーションは、再びアクティブになった際(Update()ループを実行)にバックグラウンド切断を通知します。

このケースを他と分ける必要がある場合、アプリがバックグラウンドにあるかどうかを追跡する必要があります (PUNによる特別なコールバックはありません)。

0.1秒未満の値はこのタイムアウトを無効にします(注意:接続は無期限に保つことができます)。

 情報: Unityが定期的にUpdate()を呼び出さない場合も、PUNはサーバにACKを送信するために、「フォールバックスレッド」を実行しています。  これは、シーンやアセットを読み込む際やアプリがバックグラウンドにある間に接続を維持するために役立ちます。

 注意:  一部のプラットフォーム(iOS等)ではアプリがバックグラウンドにある間、接続を維持することができません。  これらの例では、この値による変更はありません。アプリはバックグラウンドですぐに接続を失います。

 一部のUnityバージョンのエクスポート(Android)でUnityのOnApplicationPause()コールバックが破損しています。  OnApplicationPause()がターゲットとするプラットフォームで期待するコールバックを取得していることを確認してください!  PhotonHandler.OnApplicationPause(bool pause)を確認して、実装を確認してください。

ConnectMethod ConnectMethod = ConnectMethod.NotCalled
static

どのConnectメソッドが最後に呼び出されたかを追跡します。

ConnectToMasterはこれをConnectToMasterに設定します。 ConnectToRegionはこれをConnectToRegionに設定します。 ConnectToBestCloudServerはこれをConnectToBestに設定します。 PhotonNetwork.ConnectUsingSettingsは、設定に応じてConnectToMaster、ConnectToRegion、またはConnectToBestのいずれかを呼び出します。

PunLogLevel LogLevel = PunLogLevel.ErrorsOnly
static

PUNの冗長性を制御します。

readonly int MAX_VIEW_IDS = 1000
static

プレイヤー毎に(またはシーン毎に)割り当てられるPhotonViewの最大数。 基本説明 のトピック「制限事項」でこの制限を引き起こしている理由をご覧ください

LoadBalancingClient NetworkingClient
static

LoadBalancingClientはPhoton Realtimeの一部であり、複数のサーバーと状態をPUN用にラップします。

int ObjectsInOneUpdate = 10
static

1つのメッセージにまとめられるOnPhotonSerialize() - 呼び出しの数を定義します。

数値が小さいとオーバーヘッドを増加させます。数値が大きいと断片化を意味するかもしれません。

ServerSettings PhotonServerSettings = (ServerSettings)Resources.Load(PhotonNetwork.ServerSettingsFileName, typeof(ServerSettings))
static

シリアライズされたサーバー設定。サーバー設定はセットアップ・ウィザードによって記述され、ConnectUsingSettingsで使われます。

float PrecisionForFloatSynchronization = 0.01f
static

PhotonViewのOnSerialize/ObservingComponentを通して送信される前の、float数値間の最小の差。

float PrecisionForQuaternionSynchronization = 1.0f
static

PhotonViewのOnSerialize/ObservingComponentを通して送信される前に、Rotationに変換が必要となる、最小の角度。

float PrecisionForVectorSynchronization = 0.000099f
static

Vector2またはVector3(たとえばTransform、Rotation)の最小の差は、変換が必要です。その後でPhotonViewのOnSerialize/ObservingComponentを通して送信されます。

留意すべきは、これが正方形の大きさだということです。たとえばY軸で0.01変わっただけで送信しようとすると、0.01f*0.01f=0.0001fが使われます。floatの不正確さを改善するために、0.0001fの代わりに0.000099fを使っているのです。

const string PunVersion = "2.6"

ゲームのバージョン番号。これを設定するとAppVersionが更新され、マッチメイキングの際にプレイヤーベースを区別します。

bool UseRpcMonoBehaviourCache
static

有効にすると、RPCが呼ばれるMonoBehaviourがキャッシュされ、不可のかかるGetComponents<MonoBehaviour>()の呼び出しを防ぐことができます。

RPCはターゲットPhotonViewのMonoBehaviourで呼び出されます。それらはGetComponentsから探す必要があります。

これをtrueに設定すると、MonoBehavioursのリストが各PhotonViewにキャッシュされます。 手動でPhotonViewのを更新するには、photonView.RefreshRpcMonoBehaviourCache()を使用できます。 オンデマンドのMonoBehaviourのリスト(新しいMonoBehaviourがネットワーク化されたGameObjectに追加されたときなど)。

Property Documentation

string AppVersion
staticget

Photon Serverに送信され、 "Virtual AppId"が指定されます。

認証操作で送信されます。PUNを使用するときは、GameVersionを設定するかConnectUsingSettings()を使用してください。

AuthenticationValues AuthValues
staticgetset

接続時に使用されるユーザーの認証値。

カスタム認証するのであれば、これを設定したあとでConnectを呼んでください。 これらの値はuserId、そのuserIdが検証されるかどうか、またその方法(サーバー側)などを設定します。

認証に失敗すると、PUNはOnCustomAuthenticationFailed(string debugMsg)の実装を呼び出します。 参照:Photon.Realtime.IConnectionCallbacks.OnCustomAuthenticationFailed

bool AutomaticallySyncScene
staticgetset

Room内のクライアントがすべて、(PhotonNetwork.LoadLevelを使っている場合)Master Clientと同じレベルをロードするべきかを決めます。

読み込むレベルを同期するためには、Master ClientはPhotonNetwork.LoadLevelを使っている必要があります。 すべてのクライアントは、ルームに入るとすぐに(コールバックOnJoinedRoomの前であっても)または変更時に新しいシーンを読み込みます。

内部的には、Roomのカスタムプロパティが読み込んだシーンにセットされます。 クライアントが読み込んでいるのがまだ同じシーンではなくても、即座にメッセージキューを 一時停止(PhotonNetwork.isMessageQueueRunning = false)して読み込みます。 シーンの読み込みが終わると、PUNは自動的にメッセージキューを有効に戻します。

string BestRegionSummaryInPreferences
staticgetset

プレイヤー設定の「ベストリージョンサマリー」を保存してアクセスするために使用されます。

string CloudRegion
staticget

現在使用されているCloudリージョン(存在する場合)。クライアントがマスターサーバーまたはゲームサーバーでなければ、リージョンはまだ定義されていません。

int CountOfPlayers
staticget

現在このアプリケーションをプレイしているユーザー数(マスターサーバーで5秒間隔で取得可能)。

int CountOfPlayersInRooms
staticget

あるRoomで、現在このアプリケーションをプレイしているユーザー数(マスターサーバーで5秒間隔で取得可能)。 PhotonNetwork.PlayerList.LengthまたはPhotonNetwork.CurrentRoom.PlayerCountを使用して、自分が参加しているルームのプレイヤー数を取得します。

int CountOfPlayersOnMaster
staticget

現在、Roomで探せるプレイヤー数です(マスターサーバーで5秒間隔で取得可能)。

int CountOfRooms
staticget

現在使用されているRoom数(マスターサーバーで5秒間隔で取得可能)。

ロビー内で、一覧にあるRoom数はPhotonNetwork.GetRoomList().Lengthでチェック可能です。 PUN v1.25からは、この値はPhotonが(すべてのRoomを数えて)送信してくる統計イベントだけを元にしています。

bool CrcCheckEnabled
staticgetset

Crcチェックが便利なのは、壊れたデータグラムによる問題を検知して回避できることです。接続していない状態で有効化できます。

TypedLobby CurrentLobby
staticget

PUNがロビーに参加したりゲームを作成するときに使用されるロビー。 これは、ロビーに参加するとき、またはルームを作成するときに定義されます。

デフォルトのロビーは名前として空の文字列を使用します。 ルームに接続したりルームを出るとき、PUNは自動的にあなたを再びロビーに戻します。

クライアントがロビーにいる場合は、PhotonNetwork.InLobbyを確認してください。 (masterServerAndLobby)

Room CurrentRoom
staticget

現在いるルームを取得します(OfflineModeのときも)。ルームにいない場合はnull。

LoadBalancing ClientはPhoton Offline Modeを認識しないため、PhotonNetwork.NetworkingClient.CurrentRoomを使用しないでください。OffLine Modeを使用している場合はnullになります。offlineModeがtrueの場合はPhotonNetwork.CurrentRoomが設定されます。

bool EnableLobbyStatistics
staticget

有効にすると、クライアントはMaster Serverから利用可能なロビーのリストを取得します。

クライアントがマスターサーバーに接続する前にこの値を設定してください。 Master Serverに接続している間は、変更は無効です。

使用済みロビーのリストを取得するには、OptionalInfoCallbacks.OnLobbyStatisticsUpdateを実装します。

ロビーの統計は、ゲームが動的にロビーを使用する場合( 現在のプレイヤーの行動などによって)に役立ちます。 この場合、利用可能なロビーのリストを取得。ルーム数およびプレイヤー数が 有用な情報となり得る。

ConnectUsingSettingsはこれをPhotonServerSettings値に設定します。

string GameVersion
staticgetset

ゲームのバージョン番号。これを設定するとAppVersionが更新され、マッチメイキングの際にプレイヤーベースを区別します。

PUNでは、GameVersionはLoadBalancingClient.AppVersionのコンポーネントの1つにすぎません。 GameVersionを設定すると、LoadBalancingClient.AppVersionもvalue +'_'+ PhotonNetwork.PunVersionに設定されます。

AppVersionは、必要に応じてプレイヤーベースを分けるために使用されます。 1つのAppIdにはさまざまなAppVersionがあり、それぞれがマッチメイキング用の個別のユーザーのセットです。

AppVersionは「認証」ステップで送信されます。 これは、例えば、ConnectUsingSettingsを呼び出した直後にGameVersionを設定できることを意味します。 新しい値がサーバーで使用されます。クライアントが接続されると認証が行われ、その値はもうサーバーに送信されません。

bool InLobby
staticget

このクライアントがロビーにいるときtrueです。.

ルームのリストが利用可能になったとき、または更新されたときに通知を受け取るには、 IPunCallbacks.OnRoomListUpdate()を実装します。

Roomに入室したとき、ロビーからは自動的に退出します。 ロビーはマスターサーバーにのみ存在します(一方、Roomはゲームサーバーが扱います)。

bool InRoom
staticget

ルームにいる間はtrueです(NetworkClientState == ClientState.Joined)。

この値をポーリングすることとは別に、ゲームロジックはクラスでIMatchmakingCallbacksを実装し、 それが呼ばれたときに反応するべきです。

InstantiateやLeaveなど、多くのアクションはルームでしか実行できません。
クライアントはオフラインモードでルームに参加することができます。その場合は、 オフラインモードに対応していないのでLoadBalancingClient.InRoomを使用しないでください。

bool IsConnected
staticget

最初にPhotonに接続するまではfalseです。オフラインモードでは、どのサーバーに接続していても、サーバーを切り替えている間もtrueです。

bool IsConnectedAndReady
staticget

改善されたconnectedです。入室・退室などの操作を受け付ける準備ができたサーバーに接続しているときのみtrueです。

bool IsMasterClient
staticget

自分はMaster Clientであるかどうか。

bool IsMessageQueueRunning
staticgetset

受信イベント(RPCやインスタンス作成やその他受信するすべて)の配信を一時停止するのに使われます。

IsMessageQueueRunning == falseのとき、OnPhotonSerializeViewは呼ばれず、クライアントには何も送られません。 受信メッセージも、メッセージキューを再有効化するまではキューに追加されません。

この設定が便利なのは、最初にレベルを読み込んで、次にPhotonViewとRPCのデータを受信し続けようとしたときです。 クライアントは、受信パケットとRPC/イベントの応答を、受信し送信し続けます。 これは「ラグ」を増加させ、一時停止が長引き着信メッセージはすべてキューに貯まるだけという問題を引き起こす可能性があります。

float LevelLoadingProgress
staticget

ネットワークレベルの読み込み進行状況を取得します。値は最初の読み込みまではゼロのままで、読み込みの間は1になります。 PhotonNetwork.LoadLevel()を使用してネットワークレベルの読み込みを開始します

レベル読み込みの進行状況。0から1の範囲。

Player LocalPlayer
staticget

アプリがシャットダウンしない限り、このクライアントのPlayerインスタンスは常に利用可能です。

例えば。このクライアントのカスタムプレイヤープロパティまたはニックネームを設定ために使用できます。 クライアントがルームに参加すると、カスタムプロパティとその他の値が同期されます。

Player MasterClient
staticget

現在のルームのマスタークライアント、またはnull(ルームの外)。

決定を下したり、AIを実行するための「オーソリテーティブな」クライアント/プレイヤーとして使用できます。

現在のマスタークライアントがルームを出ると(離れる/切断する)、サーバーはすぐに他の人を割り当てます。 現在のマスタークライアントがタイムアウトになった場合(アプリのクローズ、接続の切断など)、このクライアントに送信されたメッセージは他のユーザーにとって事実上失われます。 マスタークライアントがアクティブでなくなりタイムアウトになるまでに10秒かかる場合があります。

Master Clientが切り替わったときに呼び出されるメソッドIPunCallbacks.OnMasterClientSwitchedを実装します。

PhotonNetwork.SetMasterClientを使用して、他のプレイヤー/クライアントに手動で切り替えます。

OfflineMode == trueの場合、これは常にPhotonNetwork.playerを返します。

int MaxResendsBeforeDisconnect
staticgetset

ACKを受信できず回線切断の引き金になるより前に、定時性メッセージを再送信できる回数。デフォルトは5。

再送信回数を減らすと、回線切断のタイミングが短くなります。その一方、再送信回数を増加すると、ラグを増加することにつながります。最小: 3、最大: 10

ClientState NetworkClientState
staticget

OfflineModeの場合を除き、ネットワークレベルのクライアントの状態を直接提供します。

PUNのコンテキストでは、通常はIsConnectedまたはIsConnectedAndReadyを使用するべきです。

下位レベルの接続状態です。PUNは複数のサーバーを使用するため、 サーバーを切り替えるだけでも、クライアントは切断される可能性があります。

OfflineModeがtrueの間、これはClientState.Joined(作成/参加後)または他のケースの場合はConnectedToMasterserverです。

bool NetworkStatisticsEnabled
staticgetset

このクライアントの通信量統計を集計するのを有効にするか無効にするか。

クライアントについて問題に出くわしたら、通信量統計は解決策を探すためのよい開始点になります。 統計を有効にしたときだけ、GetVitalStatsを使用可能になります。

string NickName
staticgetset

プレイヤーのニックネームを、入室したRoom内の全員に同期します。これはPhotonPlayer.nameを設定します。

NickNameは単なるニックネームであり、一意である必要も、アカウントでバックアップされている必要もありません。
この値はいつ(たとえば接続前に)設定しても、プレイしている相手の誰に対しても有効です。
プレイヤー名には PhotonPlayer.name を使ってアクセスしてください。
PhotonNetwork.PlayerListOthersは他のプレイヤーのリストです。それぞれにリモートプレイヤーが設定したNickNameが含まれています。

bool OfflineMode
staticgetset

オフラインモードによって、あなたのマルチプレイヤーゲームのコードをシングルプレイヤーゲームモードに再利用できるようになります。 trueなら、PhotonNetworkはなにも接続しないので、オーバーヘッドがない状態に近くなります。 最も便利なのは、RPCとPhotonNetwork.Instantiateを再利用できることです。

int PacketLossByCrcCheck
staticget

CrcCheckEnabledがtrueのとき、正しいCRCチェックサムにならず破棄された着信パケットの数を数えます。

PhotonView [] PhotonViews
staticget

Photon ビューを取得します。

これは内部リストのコピーを返すので、負荷のかかる操作です。

Photon ビュー。

Player [] PlayerList
staticget

現在のルームのプレイヤーリストのソートされたコピー。これはLinqを使っているので、この値をキャッシュしてください。プレイヤーが入室または退室するときに更新。

Player [] PlayerListOthers
staticget

このクライアントを除く、現在のルームのプレイヤーリストのソートされたコピー。これはLinqを使っているので、この値はキャッシュしてください。プレイヤーが参加または退室するときに更新。

IPunPrefabPool PrefabPool
staticgetset

Object Poolは、インスタンス化されたオブジェクトインスタンスを保持して再利用するために使用できます。UnityのデフォルトのInstantiateメソッドとDestroyメソッドを置き換えます。

デフォルトはDefaultPool型です。 GameObjectプールを使用するには、IPunPrefabPoolを実装してここに割り当てます。 プレハブは名前で識別されます。

int QuickResends
staticgetset

ネットワーク上でデータ損失した場合、定時性メッセージが即再送されるのは3回までです。

定時性メッセージを1度以上損失した場合、後続の再送データは、 ネットワーク状態回復のために少し遅れます。
このオプションによって、2回目、3回目の再送をスピードアップさせます。 そうすることでタイムアウトを回避できるようにしますが、すきまをふさぐのに必要なスピードも増加します。
この変数をセットすると、PhotonNetwork.MaxResendsBeforeDisconnectの値が6から7に増加します。

int ResentReliableCommands
staticget

(ACK受信前の、ローカルでの繰り返しタイミングのために)繰り返されたコマンドの数。

この値が大きく増加すると、状態がよくないことによるタイムアウトによる回線切断は十分あり得ます。

int SendRate
staticgetset

PhotonNetworkが一秒に何回パッケージを送信するべきかを定義します。 これを変更した場合は、 'SerializationRate'も変更してください。

パケットを減らすほど、オーバーヘッドも減りますが、遅延が増加します。 sendRateを50に設定すると、1秒に50パケットを作りあげます。(多いですね!) ターゲットプラットフォームを気をつけてください。モバイルネットワークは比較的遅く、信頼性も低くなります。

int SerializationRate
staticgetset

OnPhotonSerializeがPhotonViewに、1秒何度呼ばれるかを定義します。

PhotonNetwork.sendRateと関連させて、この値を決めてください。OnPhotonSerializeは更新情報と、送信されるメッセージを作成します。 レートを低くすると負荷も低くできますが、ラグが増加するでしょう。

ServerConnection Server
staticget

このクライアントが現在接続している、または接続しようとしているサーバー(の型)。

Photonは3つの異なる役割のサーバーを用います。Name Server、Master Server、Game Serverです。

string ServerAddress
staticget

(マスターかゲームサーバーかを問わず)現在使用されているサーバーアドレス。

int ServerTimestamp
staticget

現在のサーバーのミリ秒単位のタイムスタンプです。

これは同一Room内すべてのクライアントでアクションやイベントの同期に使えます。 このタイムスタンプはサーバーのEnvironment.TickCountをベースにしています。

これはオーバーフローして正の値から負の値になることも多いでしょう。 なので時刻の差分のみを使う場合は注意をしてください。 してください。

これはPhotonNetwork.timeをベースにしています。

double Time
staticget

Photonのネットワークタイムです。サーバーと同期されます。

v1.55
このタイム値はサーバーのEnvironment.TickCountに応じて変わります。サーバー毎に異なりますが、 Room内ではすべてのクライアントが同じ値を持ちます(Roomは1つのサーバーだけにあります)。 これはDateTimeではありません。

この値には注意してください: この値はどんな正の値からでも開始可能です。 この値は「ラップアラウンド」して、4294967.295から0に戻ります。

bool UseAlternativeUdpPorts
staticgetset

Public CloudへのUDP接続用の代替ポートに切り替えます。

ユーザーの接続の安定性に問題があるときにこれを使用するべきです。 Steamゲームへの接続の改良が報告されています。効果が異なる可能性があるため、 代替のポートはデフォルトに設定されていません。

代替(サーバー)ポートは27000から27003までです。

値は、着信サーバーアドレス文字列を置き換えることで適用されます。 これをtrueに設定するだけです。

この値は、TCPまたはWebSocket接続には影響しません。