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... | |
PhotonNetworkプラグインを使うためのメインクラスです。 このクラスは静的クラスです。
|
static |
実装されたcallback-interfacesのコールバック用のオブジェクトを登録します。
対象となるコールバックインターフェースは、IConnectionCallbacks, IMatchmakingCallbacks, ILobbyCallbacks, IInRoomCallbacks, IOnEventCallback, IWebRpcCallbackです。
参照: .Net Callbacks
target | PUNのLoadBalancingClientからコールバックを取得するために登録するオブジェクト。 |
|
static |
Master Clientに対して、シーンオブジェクトに妥当なviewIDを割り当てさせることができます。
|
static |
現在のプレイヤーまたはローカルのプレイヤーにviewIDを割り当てます。
|
static |
クライアントに切断を要求します(KICK)。マスタークライアントのみがこれを実行できます。
このイベントを受け取るのは、対象プレイヤーだけです。そのプレイヤーは自動的に切断され、他のプレイヤーもそれを認知します。
kickPlayer | キックするプレイヤー。 |
|
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への接続は以下の理由で失敗する可能性があります。
基本的に、IConnectionCallbacks.OnDisconnectedコールバックからDisconnectCauseを確認してください。
|
static |
PhotonマスターサーバーにIPアドレス・ポート・appIDとゲーム(クライアント)バージョンで接続します。
Photon Cloudに接続するには、正しいAppId(Photon Cloud Dashboardに表示されています)を設定ファイルに書き込む必要があります。 https://dashboard.photonengine.com
Photon Cloudへの接続が失敗する原因は:
基本的に、IConnectionCallbacks.OnDisconnectedコールバックからDisconnectCauseを確認してください。
masterServerAddress | サーバーのアドレス(あなた所有のものかPhoton Cloudのアドレスかを問いません) |
port | サーバーの接続ポート。 |
appID | アプリケーションID(PhotonクラウドはあなたのゲームにGUIDを振ります) |
|
static |
選択したPhoton Cloudリージョンに接続します。
|
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への接続が失敗する原因は:
基本的に、 IConnectionCallbacks.OnDisconnectedコールバックからDisconnectCauseを確認してください。
|
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
roomName | 作成するルームの一意の名前。サーバーに名前を生成させるには、nullまたは ""を渡します。 |
roomOptions | MaxPlayers、初期のカスタムルームプロパティなどのような、ルームの一般的なオプション。 RoomOptionsタイプを参照してください。 |
typedLobby | nullの場合、ルームは現在使用されているロビーに自動的に作成されます(明示的に参加しなかった場合は「デフォルト」になります)。 |
expectedUsers | このゲームに参加すると予想され、スロットをブロックしたいユーザーのリスト(UserIdによる)。 |
|
static |
PhotonViewが静的でないか、このクライアントの制御下ならば、GameObjectとそれに関連したPhotonViewをネットワーク上から破棄します。
ネットワーク上のGameObjectをRoom内で破棄するということが含むのは:
一般的に、Roomを退室すると、GameObjectは自動的に破棄されます。 Room内にいないときGameObjectを破棄すると、そのDestroyはローカルだけで実行されます。
ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。
このクライアントの制御下になるGameObjectとは:
|
static |
PhotonViewが静的でないか、このクライアントの制御下ならば、GameObjectとそれに関連したPhotonViewをネットワーク上から破棄します。
ネットワーク上のGameObjectをRoom内で破棄するということが含むのは:
一般的に、Roomを退室すると、GameObjectは自動的に破棄されます。 Room内にいないときGameObjectを破棄すると、そのDestroyはローカルだけで実行されます。
ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。
このクライアントの制御下になるGameObjectとは:
|
static |
Room内のGameObject・PhotonView・それらの発したRPCをすべてネットワーク上から破棄します。サーバーにバッファリングされたすべてを削除します。これを呼べるのは、Master Client(全員にむけて)だけです。
これを呼べるのは、Master Client(全員にむけて)だけです。 Destroyメソッドとは違い、これはサーバーのRoomバッファーのすべてを削除します。 ゲームがInstantiateとRPCコールの前にすべてをバッファリングするので、それもサーバーから削除されます。
すべて破棄することは以下を含みます:
ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。
|
static |
すべてのInstantiatesとRPCをローカルで破棄し、(localOnlyでない場合)EvDestroy(player)を送信し、サーバーバッファ内の関連イベントをクリアします。
|
static |
ターゲットプレイヤーのGameObject・PhotonView・それらの発したRPCをすべてネットワーク上から破棄します。これを呼べるのは、ローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)です。
ネットワーク上のGameObjectをRoom内で破棄するということが含むのは:
ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。
|
static |
(IDで指定した)プレイヤーのGameObject・PhotonView・それらの発したRPCをすべてネットワーク上から破棄します。これを呼べるのは、ローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)です。
ネットワーク上のGameObjectをRoom内で破棄するということが含むのは:
ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。
|
static |
このクライアントをPhotonサーバから切断します。これは、ルームを離れ、完了時にOnDisconnectedを呼び出すプロセスです。
切断すると、クライアントは「切断中」のメッセージをサーバーに送信します。 これはあなたと同じルームにいるプレイヤーへの退室/切断メッセージをスピードアップします(そうでなければサーバーはこのクライアントの接続をタイムアウトさせてしまいます)。 OfflineModeで使用すると、状態変更とイベント呼び出しのOnDisconnectedは即時に行われます。 オフラインモードもfalseに設定されています。 切断されると、クライアントは再度接続できるようになります。 ConnectUsingSettingsを使用してください。
|
static |
サーバーのタイムスタンプを更新します(非同期操作、往復します)。
不適切な接続によってタイムスタンプが使用できない、または不正確になった場合に役立ちます。
|
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[](ルームにない場合は空の文字列)
friendsToFind | フレンドの配列(一意なplayerNameかAuthValuesを付けるよう注意) |
|
static |
特定の型を持つComponentを伴うGameObjectを検索します(FindObjectsOfTypeを使います)。
type | TypeはComponentである必要があります。 |
|
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
typedLobby | 照会するロビー。SqlLobby型でなければなりません。 |
sqlLobbyFilter | SQLクエリ宣言。 |
|
static |
Photonサーバーへの現在の往復時間。
|
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 |
マスターサーバー上でロビーに入って、有効な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をロビーに入らずに使うことができます。
typedLobby | 型のあるロビー(名前と型が必要) |
|
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
roomName | 参加するルームの名前。 null以外でなければなりません。 |
roomOptions | ルームがまだ存在しない場合のオプション。そうでない場合、これらの値は無視されます。 |
typedLobby | 新しいルームをリストに追加したいロビー。ルームが存在して参加された場合は無視されます。 |
expectedUsers | このゲームに参加すると予想され、スロットをブロックしたいユーザーのリスト(UserIdによる)。 |
|
static |
フィルタに一致するランダムなルームに参加します。次をコールバックします:OnJoinedRoomまたはOnJoinRandomFailed。
ランダムマッチメイキングに使用されます。 opJoinRandomRoomParamsで定義された特定のプロパティを持つルームや任意のルームに参加することができます。
この操作は一致するルームがない場合や利用可能なルームがない場合は失敗します(すべてのルームが閉じている、別のロビーにある、または表示されていない場合)。 見つかったルームに実際に参加するときにも失敗する可能性があります。ルームはいつでも閉じられたり、満室や空室になる可能性があります。
このメソッドは、クライアントがMaster Serverに接続されている間にのみ呼び出すことができるので、 OnConnectedToMasterコールバックを実装する必要があります。 戻り値を調べて、操作がサーバー上で呼び出されることを確認してください。 注:このメソッドがfalseを返した場合、コールバックはありません。
PUNのマッチメイキングの詳細: https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby
|
static |
フィルタに一致するランダムなルームに参加します。次がコールバックされます:OnJoinedRoomまたはOnJoinRandomFailed。
ランダムマッチメイキングに使用されます。 opJoinRandomRoomParamsで定義された特定のプロパティを持つルームや任意のルームに参加することができます。
この操作は一致するルームがない場合や利用可能なルームがない場合は失敗します(すべてのルームが閉じている、別のロビーにある、または表示されていない場合)。 見つかったルームに実際に参加するときにも失敗する可能性があります。ルームはいつでも閉じられたり、満室や空室になる可能性があります。
このメソッドは、クライアントがMaster Serverに接続されている間にのみ呼び出すことができるので、 OnConnectedToMasterコールバックを実装する必要があります。 戻り値を調べて、操作がサーバー上で呼び出されることを確認してください。 注:このメソッドがfalseを返した場合、コールバックはありません。
PUNのマッチメイキングの詳細: https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby
expectedCustomRoomProperties | これらのカスタムプロパティ(文字列のキーと値)に一致するルームのフィルタ。無視するには、nullを渡します。 |
expectedMaxPlayers | 特定のmaxplayer設定をフィルタリング。 maxPlayerの値を受け入れるには0を使用してください。 |
|
static |
フィルタに一致するランダムなルームに参加します。次がコールバックされます:OnJoinedRoomまたはOnJoinRandomFailed。
ランダムマッチメイキングに使用されます。 opJoinRandomRoomParamsで定義された特定のプロパティを持つルームや任意のルームに参加することができます。
この操作は一致するルームがない場合や利用可能なルームがない場合は失敗します(すべてのルームが閉じている、別のロビーにある、または表示されていない場合)。 実際に見つかったルームに参加するときにも失敗する可能性があります。ルームはいつでも閉じられたり、満室または空室になる可能性があります。
このメソッドは、クライアントがMaster Serverに接続されている間にのみ呼び出すことができるので、 OnConnectedToMasterコールバックを実装する必要があります。 戻り値を調べて、操作がサーバー上で呼び出されることを確認してください。 注:このメソッドがfalseを返した場合、コールバックはありません。
PUNのマッチメイキングの詳細: https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby
expectedCustomRoomProperties | これらのカスタムプロパティ(文字列のキーと値)に一致するルームをフィルタします。無視するには、nullを渡します。 |
expectedMaxPlayers | 特定のmaxplayer設定をフィルタリングします。 maxPlayerの値を受け入れるには0を使用してください。 |
matchingType | 利用可能なマッチメイキングアルゴリズムを1つ選択します。オプションについてはMatchmakingMode enumを参照してください。 |
typedLobby | ルームを調べたいロビー。デフォルトのロビーを使用するには、nullを渡します。そのロビーに参加せず、ロビーのプロパティも設定しません。 |
sqlLobbyFilter | SQL型のロビー用のフィルタ文字列。 |
expectedUsers | このゲームに参加すると予想され、スロットをブロックしたいユーザーのリスト(UserIdによる)。 |
|
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
roomName | 参加するルームの一意の名前。 |
expectedUsers | このゲームに参加すると予想され、スロットをブロックしたいユーザーのリスト(UserIdによる)。 |
|
static |
ロビーから出ます。有効なRoomについて更新を受け取るのを停止します。
これはPhotonNetwork.lobbyをリセットしません! これのおかげで、 特定のロビーに後から入りやすくなります。
countOfPlayers, countOfPlayersOnMaster, countOfPlayersInRooms, countOfRoomsの値は ロビーにいなくてさえも受け取ります。
JoinRandomRoomをロビーに入らずに使うことができます。
|
static |
現在のルームを出て、マスターサーバーに戻って、ルームに参加したりルームを作成したりできます(備考を参照)。
autoCleanUpをfalseに変更しない限り、これはPhotonViewですべての(ネットワーク)GameObjectをクリーンアップします。 マスターサーバーに戻ります。
OfflineModeでは、ローカルの「偽」のルームがクリーンアップされ、OnLeftRoomがすぐに呼び出されます。
playerTTL < 0のあるルームでLeaveRoomはクライアントを非アクティブにするだけです。 プレイヤーはルームのプレイヤーリストにとどまり、後で戻ることができます。becomeInactiveを故意にfalseに設定するのは、 playerTTLが戻ることを許可していても、ルームを放棄することになります。
playerTTL == 0のルームでは、非アクティブになっても効果はありません(クライアントはすぐにルームから除去されます)。
becomeInactive | このクライアントがplayerTTLのルームで非アクティブになった場合<0.デフォルトはtrueです。 |
|
static |
ネットワークメッセージキューを一時停止するためにレベルの読み込みをラップします。必要に応じて、ルームで読み込まれたレベルを同期します。
ルームに読み込まれたレベルを同期するには、PhotonNetwork.AutomaticallySyncSceneをtrueに設定します。 その後、ルームのマスタークライアントは、読み込まれたレベルをルーム内の他のすべてのプレイヤーと同期します。
レベルを読み込んでいる間、他のプレイヤーによって受信されたメッセージを送信するべきではありません。 このメソッドは、PhotonNetwork.IsMessageQueueRunning = falseを設定し、レベルが読み込まれたときにキューを 有効にすることによって、それを処理します。
別のシーン(同じGameObjectsとPhotonViewが含まれていない)を読み込む前に、RPCを起動しないように注意してください。 これはOnJoinedRoomで呼び出すことができます。
これはSceneManager.LoadSceneAsync()を使用します。
PhotonNetwork.LevelLoadingProgressを使用してLevelLoadingの進行状況を確認します(-1は読み込まれていないことを意味します。0から1の範囲です。)
levelNumber | 読み込むレベルの番号。レベル番号を使用するときは、それらがすべてのクライアントで同一であることを確認してください。 |
|
static |
ネットワークメッセージキューを一時停止するためのレベルの読み込みをラップします。必要に応じて、ルームで読み込まれたレベルを同期します。
レベルを読み込んでいる間、他のプレイヤーによって受信されたメッセージを送信するべきではありません。 このメソッドは、PhotonNetwork.IsMessageQueueRunning = falseを設定し、 レベルが読み込まれたときにキューを有効にすることによって、それを処理します。
ルームに読み込まれたレベルを同期するには、PhotonNetwork.AutomaticallySyncSceneをtrueに設定します。 その後、ルームのマスタークライアントは、読み込まれたレベルをルーム内の他のすべてのプレイヤーと同期します。
別のシーン(同じGameObjectsとPhotonViewが含まれていない)を読み込む前に、RPCを起動しないように注意してください。 これはOnJoinedRoomで呼び出すことができます。
これはSceneManager.LoadSceneAsync()を使用します。
PhotonNetwork.LevelLoadingProgressを使用してLevelLoadingの進行状況を確認します(-1は読み込まれていないことを意味します。0から1の範囲です。)
levelName | 読み込むレベルの名前。同じルームにいるすべてのクライアントが利用できることを確認してください。 |
|
static |
トラフィック統計をリセットして再度有効にします。
|
static |
NetworkStatisticsEnabledが統計を収集するために使用された場合にのみ利用可能です。
|
static |
他のプレイヤーのRPCを削除します(マスターとして使用される)。 これによりローカルキャッシュはクリーンアップされません。プレイヤーのRPCを忘れてインスタンス化するようにサーバーに伝えるだけです。
actorNumber |
|
static |
PhotonViewのサーバのRPCをクリーンアップします(さらなるチェックなしで)。
|
static |
RPCやインスタンスを削除する代わりに、アクターによってキャッシュされたものをすべて削除します。
actorNumber |
|
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と内容は実際には送信されず、フィルターとして使われます。
eventCode | 1バイトでイベント型を表します。アクションごとにコードを変えて使いたいとか、どのコンテントか予想できるシグナルにしたくなるかもしれません。使える値の範囲は 0..199 です。 |
eventContent | いくつかのシリアライズ可能なオブジェクト、たとえばstring, byte, integer, float(など)とその配列。Hashtableにバイトキーも変数変数内容を送信するのによいです。 |
raiseEventOptions | より複雑なイベントの使用を可能にします。nullの場合、RaiseEventOptions.Defaultが使用されます(これで問題ありません)。 |
sendOptions | 信頼性の高い、暗号化などのオプションを送信します。 |
|
static |
切断後にマスターサーバーに再接続するために使用できます。
接続が失われた後、これを使ってクライアントをリージョンのMaster Serverに再度接続できます。 入っているルームの名前をキャッシュし、ゲームに戻るにはRejoinRoom(roomname)を使います。 一般的な使用例:iOSデバイスのロックボタンを押すと、すぐに切断されます。
|
static |
クライアントがゲームプレイ中に接続を失ったとき、このメソッドはルームへの再接続と再参加を試みます。
このメソッドは、以前PUNがいたルームをホストしていたゲームサーバーに直接再接続します。 その間にルームがシャットダウンされた場合、PUNはOnJoinRoomFailedを呼び出して、このクライアントをMaster Serverに返します。
このクライアントが再接続と再参加を試みる場合(条件が満たされる場合)、戻り値を確認します。 ReconnectAndRejoinがfalseを返した場合でも、Reconnect and Rejoinを試すことができます。
PhotonNetwork.RejoinRoomと同様に、これにはプレイヤーごとに固有のID(UserID)を使用する必要があります。
ルームに再参加してもプレイヤーのプロパティーは送信されません。代わりに、クライアントはサーバーから最新のものを受け取ります。 新しいプレイヤーのプロパティを設定したい場合は、一度再参加してください。
|
static |
roomNameでルームに再参加します(内部でuserIDを使用して戻ります)。次をコールバックします:OnJoinedRoomまたはOnJoinRoomFailed。
接続が切断された後、クライアントが早く再接続した場合は、ルームに戻ってプレーを続けることができます。 Reconnect()とこのメソッドを使用してください。 入っているルームの名前をキャッシュし、ゲームに戻るにはRejoinRoom(roomname)を使います。
注:ルームにも参加できるようにするには、ユーザーIDを使用する必要があります。 RoomOptions.PlayerTtlも設定する必要があります。
重要:Instantiate()とRPCの使用はまだ対応されていません。 PhotonViewsを使っている場合、PhotonViewsの所有権規則がゲームへのシームレスな復帰を妨げます。 代わりに、カスタムプロパティとRaiseEventをイベントキャッシュと共に使用します。
一般的な使用例:iOSデバイスのロックボタンを押すと、すぐに切断されます。
ルームに再参加してもプレイヤーのプロパティーは送信されません。代わりに、クライアントはサーバーから最新のものを受け取ります。 新しいプレイヤーのプロパティを設定したい場合は、一度再参加します。
|
static |
実装されたコールバックインターフェースのコールバックからターゲットオブジェクトを削除します。
対象となるコールバックインターフェースは、IConnectionCallbacks、IMatchmakingCallbacks、 ILobbyCallbacks、IInRoomCallbacks、IOnEventCallback、IWebRpcCallbackです。
参照: .Net Callbacks
target | コールバックの取得から登録解除するオブジェクト。 |
|
static |
「この」プレイヤーの独自プロパティをローカルで削除します。重要:この変更は同期されません! この挙動はRoomを切り替えるとき便利です。
このメソッドは注意して使ってください。これはプレイヤーのあいだに状態の矛盾を生み出します! これはplayer.customPropertiesをローカルで変更するだけです。 これが有用なのは、複数のゲームのあいだで独自プロパティ(それらに格納されたターンやキルなど)を削除できる点です。
SetPlayerCustomProperties()は同期しますが、Room内にいるとき値をnullにセットするのに使うこともできます。 これはRoom内で「削除された」と見なすことができます。
customPropertiesToDeleteがnullかエントリー0なら、独自プロパティすべては削除されます(新しいHashtableに置き換わります)。 削除するキーを指定すると、それはHashtableから削除されますが、ほかのキーは影響を受けません。
customPropertiesToDelete | 削除する独自プロパティのキーの一覧。remarksをご覧ください。 |
|
static |
ターゲットプレイヤーに送信され、サーバーでバッファリングされたRPCを、すべてネットワーク上から破棄します。これを呼べるのはローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)のみです。
このメソッドは以下のどちらも必要です:
ターゲットプレイヤーがRPCを呼んだとき同時に呼ばれてもいたら、ネットワーク遅延によってそれが バッファリングされるか、ほかと同じくクリアされるかが決まります。
targetPlayer | このプレイヤーのバッファリングされたRPCはサーバーのバッファーから削除されます。 |
|
static |
targetPhotonViewを通して送信される、サーバーでバッファリングされたRPCを、すべて削除します。Master Clientと、targetPhotonViewの所有者が、これを呼ぶことができます。
このメソッドは以下のどちらも必要です:
targetPhotonView | このPhotonViewのバッファリングされたRPCはサーバーのバッファーから削除されます。 |
|
static |
これがマスタークライアントである場合、または個々のPhotonViewを制御している場合は、targetGroupで送信されたサーバーからすべてのバッファ付きRPCを削除します。
この方法には以下のいずれかが必要です:
group | すべてのRPCを削除するインタレストグループ。 |
|
static |
呼び出されたばかりのRPCとInstantiatesを即時に送信するために使用できます。それらは他のプレイヤーに送信されます。
これは、レベルを読み込んでから自分で読み込むためにRPCを実行する場合に便利です。 読み込み中、他の人にはRPCは送信されません。そのため、「読み込み」RPCが遅れることになります。 RPCを "others"に送信してこのメソッドを使用し、 メッセージキューを無効にして(IsMessageQueueRunningによって)、読み込むことができます。
|
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
disableGroups | 無効にするインタレストグループ(またはnull)。 |
enableGroups | 有効にするインタレストグループ(またはnull)。 |
|
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
group | 無効にする(またはnullにする)関心のグループ。 |
enabled | 有効にする(またはnullにする)関心のグループ。 |
|
static |
後からインスタンス化されたPhotonViewのレベルプレフィックスを設定します。1つしか必要ない場合は設定しないでください。
重要:複数レベルのプレフィックスを使用しない場合は、この値を設定しないでください。 デフォルト値はトラフィック外で最適化されています。
これは既存のPhotonViewには影響しません(既存のPhotonViewではまだ変更できません)。
異なるレベルのプレフィックスで送信されたメッセージは受信されますが実行されません。 これはRPC、インスタンス化、および同期に影響します。
PUNはこの値をリセットしません。自身で行う必要があります。
prefix | 最大値はshort.MaxValue = 255です |
|
static |
現在のルームのマスタークライアントとして別のプレイヤーを割り当てるようにサーバーに要求します。
RPCとRaiseEventには、ルームのマスタークライアントにのみメッセージを送信するオプションがあります。 SetMasterClientは、どのクライアントがそれらのメッセージを受け取るかに影響します。
このメソッドは、サーバー上の操作を呼び出して、新しいマスタークライアントを設定します。往復します。 成功した場合、このクライアントと他のクライアントはサーバーから新しいマスタークライアントを取得します。
SetMasterClientは、現在のどのMaster Clientを新しいものに置き換えるべきかをサーバーに指示します。 その前にマスタークライアントを切り替えると、失敗します。このエラーに対するコールバックはありません。 どちらにせよ、すべてのクライアントはサーバによって割り当てられた新しいマスタークライアントを取得します。
PhotonNetwork.MasterClientもご覧ください。
v3サーバーの場合: ReceiverGroup.MasterClient(RPCで使用可能)はこれによる影響を受けません(ルーム内の最も低いplayer.IDを指します)。 この列挙値を使用しないでください(代わりに特定のプレイヤーに送ってください)。
現在のマスタークライアントが退室すると、PUNは「最低のプレイヤーID」で新しいものを検出します。この場合、OnMasterClientSwitchedを実装してコールバックを取得します。 PUNで選択されたマスタークライアントは新しいものを割り当てるかもしれません。
マスター指定の無限ループを作らないように注意してください!カスタムマスタークライアントを選択する際、誰が実際にこのプレイヤーを指定したかに関わらず、 すべてのクライアントは同じプレイヤーを指すべきです。
ローカルではマスタークライアントが即座に切り替えられ、リモートクライアントはイベントを受け取ります。これは、現在のマスタークライアントが去ったときのように、 一時的にゲームのマスタークライアントが不在であることを意味します。
Master Clientを手動で切り替えるときは、他のMaster Clientと同様、 このユーザーが退室して動作しない可能性があるのでご注意ください。
masterClientPlayer | 次のマスタークライアントになるプレイヤー。 |
|
static |
この(ローカル)プレイヤーのプロパティをセットして、他のプレイヤーにも同期します(直接編集しないでください)。
Room内では、プロパティは他のプレイヤーに同期されています。Roomに入室すると、 CreateRoom, JoinRoom, JoinRandomRoomのすべてが自分のプレイヤーの独自プロパティに適用されます。 Hashtable全体が送信されます。更新されたキー/値のみをセットすると通信量を最小化できます。
Hashtableがnullなら、その独自プロパティはクリアされます。 独自プロパティは自動ではクリアされないので、変更しない限りは、次のRoomに持ち越されます。PhotonNetwork.player.customPropertiesを編集してプロパティをセットしないでください!
customProperties | string型のキーだけをこのハッシュテーブルに使用できます。もしnullなら独自プロパティはすべて削除されます。 |
|
static |
特定のグループで送信を有効/無効にする(PhotonViewに適用される)
Photonサーバーサイドとはやり取りしません。 ブロックされたグループに送信された場合に更新を抑制するためのクライアント側の設定です。
この設定は、更新がサーバーや他の誰にも届かないことを意味するため、特に有用ではありません。 注意して使用してください。
group | 影響を与えるインタレストグループ。 |
enabled | グループへの送信が有効かどうかを設定します。 |
|
static |
特定のグループでの送信を有効/無効にします(PhotonViewに適用される)。
Photonサーバーサイドとはやり取りしません。 ブロックされたグループに送信された場合に更新を抑制するためのクライアント側の設定です。
この設定は、更新がサーバーや他の誰にも届かないことを意味するため、特に有用ではありません。 注意して使用してください。
enableGroups | 送信を有効にするインタレストグループ(またはnull)。 |
disableGroups | 送信を無効にするインタレストグループ(またはnull)。 |
|
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) { //... } // 等々 }
|
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)を確認して、実装を確認してください。
|
static |
どのConnectメソッドが最後に呼び出されたかを追跡します。
ConnectToMasterはこれをConnectToMasterに設定します。 ConnectToRegionはこれをConnectToRegionに設定します。 ConnectToBestCloudServerはこれをConnectToBestに設定します。 PhotonNetwork.ConnectUsingSettingsは、設定に応じてConnectToMaster、ConnectToRegion、またはConnectToBestのいずれかを呼び出します。
|
static |
PUNの冗長性を制御します。
|
static |
プレイヤー毎に(またはシーン毎に)割り当てられるPhotonViewの最大数。 基本説明 のトピック「制限事項」でこの制限を引き起こしている理由をご覧ください
|
static |
LoadBalancingClientはPhoton Realtimeの一部であり、複数のサーバーと状態をPUN用にラップします。
|
static |
1つのメッセージにまとめられるOnPhotonSerialize() - 呼び出しの数を定義します。
数値が小さいとオーバーヘッドを増加させます。数値が大きいと断片化を意味するかもしれません。
|
static |
シリアライズされたサーバー設定。サーバー設定はセットアップ・ウィザードによって記述され、ConnectUsingSettingsで使われます。
|
static |
PhotonViewのOnSerialize/ObservingComponentを通して送信される前の、float数値間の最小の差。
|
static |
PhotonViewのOnSerialize/ObservingComponentを通して送信される前に、Rotationに変換が必要となる、最小の角度。
|
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が更新され、マッチメイキングの際にプレイヤーベースを区別します。
|
static |
有効にすると、RPCが呼ばれるMonoBehaviourがキャッシュされ、不可のかかるGetComponents<MonoBehaviour>()の呼び出しを防ぐことができます。
RPCはターゲットPhotonViewのMonoBehaviourで呼び出されます。それらはGetComponentsから探す必要があります。
これをtrueに設定すると、MonoBehavioursのリストが各PhotonViewにキャッシュされます。 手動でPhotonViewのを更新するには、photonView.RefreshRpcMonoBehaviourCache()を使用できます。 オンデマンドのMonoBehaviourのリスト(新しいMonoBehaviourがネットワーク化されたGameObjectに追加されたときなど)。
|
staticget |
Photon Serverに送信され、 "Virtual AppId"が指定されます。
認証操作で送信されます。PUNを使用するときは、GameVersionを設定するかConnectUsingSettings()を使用してください。
|
staticgetset |
接続時に使用されるユーザーの認証値。
カスタム認証するのであれば、これを設定したあとでConnectを呼んでください。 これらの値はuserId、そのuserIdが検証されるかどうか、またその方法(サーバー側)などを設定します。
認証に失敗すると、PUNはOnCustomAuthenticationFailed(string debugMsg)の実装を呼び出します。 参照:Photon.Realtime.IConnectionCallbacks.OnCustomAuthenticationFailed
|
staticgetset |
Room内のクライアントがすべて、(PhotonNetwork.LoadLevelを使っている場合)Master Clientと同じレベルをロードするべきかを決めます。
読み込むレベルを同期するためには、Master ClientはPhotonNetwork.LoadLevelを使っている必要があります。 すべてのクライアントは、ルームに入るとすぐに(コールバックOnJoinedRoomの前であっても)または変更時に新しいシーンを読み込みます。
内部的には、Roomのカスタムプロパティが読み込んだシーンにセットされます。 クライアントが読み込んでいるのがまだ同じシーンではなくても、即座にメッセージキューを 一時停止(PhotonNetwork.isMessageQueueRunning = false)して読み込みます。 シーンの読み込みが終わると、PUNは自動的にメッセージキューを有効に戻します。
|
staticgetset |
プレイヤー設定の「ベストリージョンサマリー」を保存してアクセスするために使用されます。
|
staticget |
現在使用されているCloudリージョン(存在する場合)。クライアントがマスターサーバーまたはゲームサーバーでなければ、リージョンはまだ定義されていません。
|
staticget |
現在このアプリケーションをプレイしているユーザー数(マスターサーバーで5秒間隔で取得可能)。
|
staticget |
あるRoomで、現在このアプリケーションをプレイしているユーザー数(マスターサーバーで5秒間隔で取得可能)。 PhotonNetwork.PlayerList.LengthまたはPhotonNetwork.CurrentRoom.PlayerCountを使用して、自分が参加しているルームのプレイヤー数を取得します。
|
staticget |
現在、Roomで探せるプレイヤー数です(マスターサーバーで5秒間隔で取得可能)。
|
staticget |
現在使用されているRoom数(マスターサーバーで5秒間隔で取得可能)。
ロビー内で、一覧にあるRoom数はPhotonNetwork.GetRoomList().Lengthでチェック可能です。 PUN v1.25からは、この値はPhotonが(すべてのRoomを数えて)送信してくる統計イベントだけを元にしています。
|
staticgetset |
Crcチェックが便利なのは、壊れたデータグラムによる問題を検知して回避できることです。接続していない状態で有効化できます。
|
staticget |
PUNがロビーに参加したりゲームを作成するときに使用されるロビー。 これは、ロビーに参加するとき、またはルームを作成するときに定義されます。
デフォルトのロビーは名前として空の文字列を使用します。 ルームに接続したりルームを出るとき、PUNは自動的にあなたを再びロビーに戻します。
クライアントがロビーにいる場合は、PhotonNetwork.InLobbyを確認してください。 (masterServerAndLobby)
|
staticget |
現在いるルームを取得します(OfflineModeのときも)。ルームにいない場合はnull。
LoadBalancing ClientはPhoton Offline Modeを認識しないため、PhotonNetwork.NetworkingClient.CurrentRoomを使用しないでください。OffLine Modeを使用している場合はnullになります。offlineModeがtrueの場合はPhotonNetwork.CurrentRoomが設定されます。
|
staticget |
有効にすると、クライアントはMaster Serverから利用可能なロビーのリストを取得します。
クライアントがマスターサーバーに接続する前にこの値を設定してください。 Master Serverに接続している間は、変更は無効です。
使用済みロビーのリストを取得するには、OptionalInfoCallbacks.OnLobbyStatisticsUpdateを実装します。
ロビーの統計は、ゲームが動的にロビーを使用する場合( 現在のプレイヤーの行動などによって)に役立ちます。 この場合、利用可能なロビーのリストを取得。ルーム数およびプレイヤー数が 有用な情報となり得る。
ConnectUsingSettingsはこれをPhotonServerSettings値に設定します。
|
staticgetset |
ゲームのバージョン番号。これを設定するとAppVersionが更新され、マッチメイキングの際にプレイヤーベースを区別します。
PUNでは、GameVersionはLoadBalancingClient.AppVersionのコンポーネントの1つにすぎません。 GameVersionを設定すると、LoadBalancingClient.AppVersionもvalue +'_'+ PhotonNetwork.PunVersionに設定されます。
AppVersionは、必要に応じてプレイヤーベースを分けるために使用されます。 1つのAppIdにはさまざまなAppVersionがあり、それぞれがマッチメイキング用の個別のユーザーのセットです。
AppVersionは「認証」ステップで送信されます。 これは、例えば、ConnectUsingSettingsを呼び出した直後にGameVersionを設定できることを意味します。 新しい値がサーバーで使用されます。クライアントが接続されると認証が行われ、その値はもうサーバーに送信されません。
|
staticget |
このクライアントがロビーにいるときtrueです。.
ルームのリストが利用可能になったとき、または更新されたときに通知を受け取るには、 IPunCallbacks.OnRoomListUpdate()を実装します。
Roomに入室したとき、ロビーからは自動的に退出します。 ロビーはマスターサーバーにのみ存在します(一方、Roomはゲームサーバーが扱います)。
|
staticget |
ルームにいる間はtrueです(NetworkClientState == ClientState.Joined)。
この値をポーリングすることとは別に、ゲームロジックはクラスでIMatchmakingCallbacksを実装し、 それが呼ばれたときに反応するべきです。
InstantiateやLeaveなど、多くのアクションはルームでしか実行できません。
クライアントはオフラインモードでルームに参加することができます。その場合は、 オフラインモードに対応していないのでLoadBalancingClient.InRoomを使用しないでください。
|
staticget |
最初にPhotonに接続するまではfalseです。オフラインモードでは、どのサーバーに接続していても、サーバーを切り替えている間もtrueです。
|
staticget |
改善されたconnectedです。入室・退室などの操作を受け付ける準備ができたサーバーに接続しているときのみtrueです。
|
staticget |
自分はMaster Clientであるかどうか。
|
staticgetset |
受信イベント(RPCやインスタンス作成やその他受信するすべて)の配信を一時停止するのに使われます。
IsMessageQueueRunning == falseのとき、OnPhotonSerializeViewは呼ばれず、クライアントには何も送られません。 受信メッセージも、メッセージキューを再有効化するまではキューに追加されません。
この設定が便利なのは、最初にレベルを読み込んで、次にPhotonViewとRPCのデータを受信し続けようとしたときです。 クライアントは、受信パケットとRPC/イベントの応答を、受信し送信し続けます。 これは「ラグ」を増加させ、一時停止が長引き着信メッセージはすべてキューに貯まるだけという問題を引き起こす可能性があります。
|
staticget |
ネットワークレベルの読み込み進行状況を取得します。値は最初の読み込みまではゼロのままで、読み込みの間は1になります。 PhotonNetwork.LoadLevel()を使用してネットワークレベルの読み込みを開始します
レベル読み込みの進行状況。0から1の範囲。
|
staticget |
アプリがシャットダウンしない限り、このクライアントのPlayerインスタンスは常に利用可能です。
例えば。このクライアントのカスタムプレイヤープロパティまたはニックネームを設定ために使用できます。 クライアントがルームに参加すると、カスタムプロパティとその他の値が同期されます。
|
staticget |
現在のルームのマスタークライアント、またはnull(ルームの外)。
決定を下したり、AIを実行するための「オーソリテーティブな」クライアント/プレイヤーとして使用できます。
現在のマスタークライアントがルームを出ると(離れる/切断する)、サーバーはすぐに他の人を割り当てます。 現在のマスタークライアントがタイムアウトになった場合(アプリのクローズ、接続の切断など)、このクライアントに送信されたメッセージは他のユーザーにとって事実上失われます。 マスタークライアントがアクティブでなくなりタイムアウトになるまでに10秒かかる場合があります。
Master Clientが切り替わったときに呼び出されるメソッドIPunCallbacks.OnMasterClientSwitchedを実装します。
PhotonNetwork.SetMasterClientを使用して、他のプレイヤー/クライアントに手動で切り替えます。
OfflineMode == trueの場合、これは常にPhotonNetwork.playerを返します。
|
staticgetset |
ACKを受信できず回線切断の引き金になるより前に、定時性メッセージを再送信できる回数。デフォルトは5。
再送信回数を減らすと、回線切断のタイミングが短くなります。その一方、再送信回数を増加すると、ラグを増加することにつながります。最小: 3、最大: 10
|
staticget |
OfflineModeの場合を除き、ネットワークレベルのクライアントの状態を直接提供します。
PUNのコンテキストでは、通常はIsConnectedまたはIsConnectedAndReadyを使用するべきです。
下位レベルの接続状態です。PUNは複数のサーバーを使用するため、 サーバーを切り替えるだけでも、クライアントは切断される可能性があります。
OfflineModeがtrueの間、これはClientState.Joined(作成/参加後)または他のケースの場合はConnectedToMasterserverです。
|
staticgetset |
このクライアントの通信量統計を集計するのを有効にするか無効にするか。
クライアントについて問題に出くわしたら、通信量統計は解決策を探すためのよい開始点になります。 統計を有効にしたときだけ、GetVitalStatsを使用可能になります。
|
staticgetset |
プレイヤーのニックネームを、入室したRoom内の全員に同期します。これはPhotonPlayer.nameを設定します。
NickNameは単なるニックネームであり、一意である必要も、アカウントでバックアップされている必要もありません。
この値はいつ(たとえば接続前に)設定しても、プレイしている相手の誰に対しても有効です。
プレイヤー名には PhotonPlayer.name を使ってアクセスしてください。
PhotonNetwork.PlayerListOthersは他のプレイヤーのリストです。それぞれにリモートプレイヤーが設定したNickNameが含まれています。
|
staticgetset |
オフラインモードによって、あなたのマルチプレイヤーゲームのコードをシングルプレイヤーゲームモードに再利用できるようになります。 trueなら、PhotonNetworkはなにも接続しないので、オーバーヘッドがない状態に近くなります。 最も便利なのは、RPCとPhotonNetwork.Instantiateを再利用できることです。
|
staticget |
CrcCheckEnabledがtrueのとき、正しいCRCチェックサムにならず破棄された着信パケットの数を数えます。
|
staticget |
|
staticget |
現在のルームのプレイヤーリストのソートされたコピー。これはLinqを使っているので、この値をキャッシュしてください。プレイヤーが入室または退室するときに更新。
|
staticget |
このクライアントを除く、現在のルームのプレイヤーリストのソートされたコピー。これはLinqを使っているので、この値はキャッシュしてください。プレイヤーが参加または退室するときに更新。
|
staticgetset |
Object Poolは、インスタンス化されたオブジェクトインスタンスを保持して再利用するために使用できます。UnityのデフォルトのInstantiateメソッドとDestroyメソッドを置き換えます。
デフォルトはDefaultPool型です。 GameObjectプールを使用するには、IPunPrefabPoolを実装してここに割り当てます。 プレハブは名前で識別されます。
|
staticgetset |
ネットワーク上でデータ損失した場合、定時性メッセージが即再送されるのは3回までです。
定時性メッセージを1度以上損失した場合、後続の再送データは、 ネットワーク状態回復のために少し遅れます。
このオプションによって、2回目、3回目の再送をスピードアップさせます。 そうすることでタイムアウトを回避できるようにしますが、すきまをふさぐのに必要なスピードも増加します。
この変数をセットすると、PhotonNetwork.MaxResendsBeforeDisconnectの値が6から7に増加します。
|
staticget |
(ACK受信前の、ローカルでの繰り返しタイミングのために)繰り返されたコマンドの数。
この値が大きく増加すると、状態がよくないことによるタイムアウトによる回線切断は十分あり得ます。
|
staticgetset |
PhotonNetworkが一秒に何回パッケージを送信するべきかを定義します。 これを変更した場合は、 'SerializationRate'も変更してください。
パケットを減らすほど、オーバーヘッドも減りますが、遅延が増加します。 sendRateを50に設定すると、1秒に50パケットを作りあげます。(多いですね!) ターゲットプラットフォームを気をつけてください。モバイルネットワークは比較的遅く、信頼性も低くなります。
|
staticgetset |
OnPhotonSerializeがPhotonViewに、1秒何度呼ばれるかを定義します。
PhotonNetwork.sendRateと関連させて、この値を決めてください。OnPhotonSerializeは更新情報と、送信されるメッセージを作成します。 レートを低くすると負荷も低くできますが、ラグが増加するでしょう。
|
staticget |
このクライアントが現在接続している、または接続しようとしているサーバー(の型)。
Photonは3つの異なる役割のサーバーを用います。Name Server、Master Server、Game Serverです。
|
staticget |
(マスターかゲームサーバーかを問わず)現在使用されているサーバーアドレス。
|
staticget |
現在のサーバーのミリ秒単位のタイムスタンプです。
これは同一Room内すべてのクライアントでアクションやイベントの同期に使えます。 このタイムスタンプはサーバーのEnvironment.TickCountをベースにしています。
これはオーバーフローして正の値から負の値になることも多いでしょう。 なので時刻の差分のみを使う場合は注意をしてください。 してください。
これはPhotonNetwork.timeをベースにしています。
|
staticget |
Photonのネットワークタイムです。サーバーと同期されます。
v1.55
このタイム値はサーバーのEnvironment.TickCountに応じて変わります。サーバー毎に異なりますが、 Room内ではすべてのクライアントが同じ値を持ちます(Roomは1つのサーバーだけにあります)。 これはDateTimeではありません。
この値には注意してください: この値はどんな正の値からでも開始可能です。 この値は「ラップアラウンド」して、4294967.295から0に戻ります。
|
staticgetset |
Public CloudへのUDP接続用の代替ポートに切り替えます。
ユーザーの接続の安定性に問題があるときにこれを使用するべきです。 Steamゲームへの接続の改良が報告されています。効果が異なる可能性があるため、 代替のポートはデフォルトに設定されていません。
代替(サーバー)ポートは27000から27003までです。
値は、着信サーバーアドレス文字列を置き換えることで適用されます。 これをtrueに設定するだけです。
この値は、TCPまたはWebSocket接続には影響しません。