PhotonNetworkプラグインを使うためのメインクラスです。 このクラスは静的クラスです。 More...
Public Member Functions | |
delegate void | EventCallback (byte eventCode, object content, int senderId) |
OnEventCallのデリゲートを使用可能にするかを決めます。 More... | |
Static Public Member Functions | |
static void | SwitchToProtocol (ConnectionProtocol cp) |
オフラインのとき、ネットワークプロトコルを切り替え可能になります(これは使用可能ポートに接続するときに影響します)。 More... | |
static bool | ConnectUsingSettings (string gameVersion) |
エディタで設定したようにPhotonに接続します(PhotonServerSettingsファイルに保存されます)。 More... | |
static bool | ConnectToMaster (string masterServerAddress, int port, string appID, string gameVersion) |
PhotonマスターサーバーにIPアドレス・ポート・appIDとゲーム(クライアント)バージョンで接続します。 More... | |
static bool | Reconnect () |
切断後、マスタサーバーに再接続するために使用することができます。 More... | |
static bool | ReconnectAndRejoin () |
クライアントがゲームプレイ中に接続を失った場合、このメソッドは再接続してルームへの再入室を試みます。 More... | |
static bool | ConnectToBestCloudServer (string gameVersion) |
(Unityのpingをサポートするプラットフォーム上で)pingが最も低い地域のPhoton Cloudに接続します。 More... | |
static bool | ConnectToRegion (CloudRegionCode region, string gameVersion) |
選択したPhoton Cloudの地域に接続します。 More... | |
static void | OverrideBestCloudServer (CloudRegionCode region) |
ConnectToBestCloudServer(string gameVersion)で使われている地域を上書きします。 More... | |
static void | RefreshCloudServerRating () |
クラウドサーバーすべてに再pingして、(現在)ping値が最もよいものを探します。 More... | |
static void | NetworkStatisticsReset () |
通信量統計をリセットして、再有効化します。 More... | |
static string | NetworkStatisticsToString () |
NetworkStatisticsEnabledがいくつかの統計をまとめるのに使われたときのみ、使用できます。 More... | |
static void | InitializeSecurity () |
Unity Networkingとの互換性のためだけに使われます。暗号化については接続時に自動で初期化されます。 More... | |
static void | Disconnect () |
このクライアントをPhotonサーバーと、Roomに残るプロセスから回線切断します。そしてOnDisconnectedFromPhotonを完了時に呼びます。 More... | |
static bool | FindFriends (string[] friendsToFind) |
フレンド一覧のRoomとオンライン状況をリクエストします。そして結果をPhotonNetwork.Friendsに格納します。 More... | |
static bool | CreateRoom (string roomName) |
指定した名前でRoomを作成します。その名前のRoomがすでにあるときは失敗します。 More... | |
static bool | CreateRoom (string roomName, RoomOptions roomOptions, TypedLobby typedLobby) |
ルームを作成しますが、ルームがすでに存在している場合は失敗します。マスタサーバでのみ呼び出すことができます。 More... | |
static bool | CreateRoom (string roomName, RoomOptions roomOptions, TypedLobby typedLobby, string[] expectedUsers) |
指定した名前でRoomを作成します。その名前のRoomがすでにあるときは失敗します。マスターサーバーだけから呼ぶことができます。 More... | |
static bool | JoinRoom (string roomName) |
roomnameでルームに参加して、成功時にOnJoinedRoom()を呼び出します。これは、ロビーには影響されません。 More... | |
static bool | JoinRoom (string roomName, string[] expectedUsers) |
roomnameでルームに参加して、成功時にOnJoinedRoom()を呼び出します。これは、ロビーには影響されません。 More... | |
static bool | JoinOrCreateRoom (string roomName, RoomOptions roomOptions, TypedLobby typedLobby) |
名前付きのRoomに入室するか、その場でRoom作成するかします。誰かがすでにRoomを作ったかどうかは知らなくてもかまいません。 More... | |
static bool | JoinOrCreateRoom (string roomName, RoomOptions roomOptions, TypedLobby typedLobby, string[] expectedUsers) |
名前を付けられたルームに参加するか、その場で作成することができます。誰かがすでにルームを作成したかどうかを知る必要はありません。 More... | |
static bool | JoinRandomRoom () |
現在使われているロビーの、有効なRoomのどれかに入室します。有効なRoomがなければ失敗します。 More... | |
static bool | JoinRandomRoom (Hashtable expectedCustomRoomProperties, byte expectedMaxPlayers) |
独自プロパティのマッチした、空いているRoomに入室しようとします。現在有効なRoomがない場失敗します。 More... | |
static bool | JoinRandomRoom (Hashtable expectedCustomRoomProperties, byte expectedMaxPlayers, MatchmakingMode matchingType, TypedLobby typedLobby, string sqlLobbyFilter, string[] expectedUsers=null) |
独自プロパティのマッチした、空いているRoomに入室しようとします。現在有効なRoomがない場合失敗します。 More... | |
static bool | ReJoinRoom (string roomName) |
切断後にルームに戻り、再接続するために使用することができます。 More... | |
static bool | JoinLobby () |
マスターサーバー上で、デフォルトロビーに入ります。そのロビーでは、現在使用中のRoom一覧をみることができます。 More... | |
static bool | JoinLobby (TypedLobby typedLobby) |
マスターサーバー上でロビーに入って、有効なRoomの一覧を得ることができます。 More... | |
static bool | LeaveLobby () |
ロビーから出ます。有効なRoomについて更新を受け取るのを停止します。 More... | |
static bool | LeaveRoom () |
現在のRoomを退室して、マスターサーバーに戻ります。マスターサーバーではRoomに入室したりRoom作成できます。remarksをご覧ください。 More... | |
static bool | GetCustomRoomList (TypedLobby typedLobby, string sqlLobbyFilter) |
サーバからゲームのカスタムリストを取得し、SQLのような「where」節に一致させて、OnReceivedRoomListUpdateコールバックをトリガーします。 More... | |
static RoomInfo[] | GetRoomList () |
現在把握されているRoomをRoomInfo配列で取得します。ロビーにいるとき利用できて更新されます(insideLobbyをチェックしてください)。 More... | |
static void | SetPlayerCustomProperties (Hashtable customProperties) |
この(ローカル)プレイヤーのプロパティをセットして、他のプレイヤーにも同期します(直接編集しないでください)。 More... | |
static void | RemovePlayerCustomProperties (string[] customPropertiesToDelete) |
「この」プレイヤーの独自プロパティをローカルで削除します。重要:この変更は同期されません! この挙動はRoomを切り替えるとき便利です。 More... | |
static bool | RaiseEvent (byte eventCode, object eventContent, bool sendReliable, RaiseEventOptions options) |
Room内の、一からカスタマイズ可能なイベントを送信します。イベントは少なくともEventCode (0..199)と内容で構成されています。 More... | |
static int | AllocateViewID () |
現在/ローカルのプレイヤーに妥当なviewIDを割り当てます。 More... | |
static int | AllocateSceneViewID () |
Master Clientに対して、シーンオブジェクトに妥当なviewIDを割り当てさせることができます。 More... | |
static void | UnAllocateViewID (int viewID) |
(手動でインスタンス作成されて破棄されたネットワーク上のオブジェクトの)viewIDの割り当てを解除します。 More... | |
static GameObject | Instantiate (string prefabName, Vector3 position, Quaternion rotation, int group) |
ネットワーク越しにプレハブからインスタンス作成します。このプレハブは"Resources"フォルダー直下に配置されている必要があります。 More... | |
static GameObject | Instantiate (string prefabName, Vector3 position, Quaternion rotation, int group, object[] data) |
ネットワーク越しにプレハブからインスタンス作成します。このプレハブは"Resources"フォルダー直下に配置されている必要があります。 More... | |
static GameObject | InstantiateSceneObject (string prefabName, Vector3 position, Quaternion rotation, int group, object[] data) |
ネットワーク越しにプレハブからインスタンス作成します。このプレハブは"Resources"フォルダー直下に配置されている必要があります。 More... | |
static int | GetPing () |
現在の、Photonサーバーへの往復にかかる時間。 More... | |
static void | FetchServerTimestamp () |
サーバータイムスタンプを更新します(非同期動作で、サーバーを往復します) More... | |
static void | SendOutgoingCommands () |
即座にRPCを送信しInstantiate(インスタンス作成)を呼び出すのに使われます。それらは他のプレイヤーに向かいます。 More... | |
static bool | CloseConnection (PhotonPlayer kickPlayer) |
クライアントに回線切断(KICK)をリクエストします。Master Clientのみが実行可能です。 More... | |
static bool | SetMasterClient (PhotonPlayer masterClientPlayer) |
サーバーに依頼して、別のプレイヤーを現在のRoomのMaster Clientに割り当ててもらいます。 More... | |
static void | Destroy (PhotonView targetView) |
PhotonViewが静的でないか、このクライアントの制御下ならば、GameObjectとそれに関連したPhotonViewをネットワーク上から破棄します。 More... | |
static void | Destroy (GameObject targetGo) |
PhotonViewが静的でないか、このクライアントの制御下ならば、GameObjectとそれに関連したPhotonViewをネットワーク上から破棄します。 More... | |
static void | DestroyPlayerObjects (PhotonPlayer 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 (PhotonPlayer targetPlayer) |
ターゲットプレイヤーに送信され、サーバーでバッファリングされたRPCを、すべてネットワーク上から破棄します。これを呼べるのはローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)のみです。 More... | |
static void | RemoveRPCs (PhotonView targetPhotonView) |
targetPhotonViewを通して送信される、サーバーでバッファリングされたRPCを、すべて削除します。Master Clientと、targetPhotonViewの所有者が、これを呼ぶことができます。 More... | |
static void | RemoveRPCsInGroup (int targetGroup) |
targetGroupに送信される、サーバーでバッファリングされたRPCを、すべて削除します。Master Clientと、targetPhotonViewの所有者が、これを呼ぶことができます。 More... | |
static void | CacheSendMonoMessageTargets (Type type) |
既存のtype型のComponentを持つGameObjectをSendMonoMessageTargetsに加えます。 More... | |
static HashSet< GameObject > | FindGameObjectsWithComponent (Type type) |
特定の型を持つComponentを伴うGameObjectを検索します(FindObjectsOfTypeを使います)。 More... | |
static void | SetReceivingEnabled (int group, bool enabled) |
指定されたグループで受信は可能/不可能か(PhotonViewに適用されます) More... | |
static void | SetReceivingEnabled (int[] enableGroups, int[] disableGroups) |
指定されたグループで受信は可能/不可能か(PhotonViewに適用されます) More... | |
static void | SetInterestGroups (byte[] disableGroups, byte[] enableGroups) |
指定されたインタレストグループ(PhotonViewsに適用)で受信を有効/無効にします。 More... | |
static void | SetSendingEnabled (int group, bool enabled) |
static void | SetSendingEnabled (byte group, bool enabled) |
特定のグループでの送信を有効/無効にする(PhotonViewsに適用) More... | |
static void | SetSendingEnabled (int[] enableGroups, int[] disableGroups) |
static void | SetSendingEnabled (byte[] disableGroups, byte[] enableGroups) |
特定のグループでの送信を有効/無効にする(PhotonViewsに適用) More... | |
static void | SetLevelPrefix (short prefix) |
後にインスタンス作成されるPhotonViewに、レベルプリフィックスをセットします。1つのPhotonViewに必要なだけならセットしないでください! More... | |
static void | LoadLevel (int levelNumber) |
ネットワークのメッセージキューを一時停止するため、レベル読み込みをラップします。オプションで、読み込んだレベルをRoom内で同期します。 More... | |
static void | LoadLevel (string levelName) |
ネットワークのメッセージキューを一時停止するため、レベル読み込みをラップします。オプションで、読み込んだレベルをRoom内で同期します。 More... | |
static bool | WebRpc (string name, object parameters) |
この操作で、独自Webサービスをname(path)と指定したパラメーターで、Photonに呼び出させることができます。 More... | |
Public Attributes | |
const string | versionPUN = "1.77" |
PUNのバージョン番号。GameVersionの中でも使われて、クライアントのバージョンを相互に分離します。 More... | |
Static Public Attributes | |
static readonly int | MAX_VIEW_IDS = 1000 |
プレイヤー毎に(またはシーン毎に)割り当てられるPhotonViewの最大数。 基本説明 のトピック「制限事項」でこの制限を引き起こしている理由をご覧ください More... | |
static ServerSettings | PhotonServerSettings = (ServerSettings)Resources.Load(PhotonNetwork.serverSettingsAssetFile, typeof(ServerSettings)) |
シリアライズされたサーバー設定。サーバー設定はセットアップ・ウィザードによって記述され、ConnectUsingSettingsで使われます。 More... | |
static bool | InstantiateInRoomOnly = true |
trueなら、Instantiate(インスタンス作成)メソッドを呼ぶと、入室中かをチェックされます。Roomにいないなら失敗します。 More... | |
static PhotonLogLevel | logLevel = PhotonLogLevel.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 bool | UseRpcMonoBehaviourCache |
有効なら、RPCを呼ぶ主体のMonoBehaviourはキャッシュされます。コストのかさむGetComponents<MonoBehaviour>()を呼ぶのを避けるためです。 More... | |
static bool | UsePrefabCache = true |
trueなら、インスタンス作成時にPhotonNetwork.PrefabCacheを使い、ゲームオブジェクトをメモリ内に保持します(同じプレハブからのインスタンス作成が改善します)。 More... | |
static Dictionary< string, GameObject > | PrefabCache = new Dictionary<string, GameObject>() |
ゲームオブジェクトへの参照を、回数の多いインスタンス作成のために保持します(Resourcesフォルダーから読み込む代わりにメモリから読み込みます)。 More... | |
static HashSet< GameObject > | SendMonoMessageTargets |
nullでないなら、これはPUNのSendMonoMessage()に呼ばれるGameObjectの(排他的な)一覧です。 More... | |
static Type | SendMonoMessageTargetType = typeof(MonoBehaviour) |
どのクラスがPUNのコールバック実装を含むのかを示します。 More... | |
static bool | StartRpcsAsCoroutine = true |
パフォーマンス上の問題になる可能性があるため、コルーチンとしてのRPCの開始を省略するために使用することができます。 More... | |
static int | maxConnections |
Unity Networkingだけに使われます。PUNではPhotonNetwork.CreateRoomを使ってプレイヤー数を指定します。 More... | |
static float | BackgroundTimeout = 60.0f |
UnityのOnApplicationPause(true)が呼ばれた後の接続を保持するためのフォールバックスレッドをPUNがどのくらいの期間動かすかを定義します。デフォルトは60秒です /// More... | |
static EventCallback | OnEventCall |
RaiseEventを扱うメソッドを“+=”を使って登録します。 More... | |
Properties | |
static string | gameVersion [get, set] |
このビルドのバージョン文字列。非互換のクライアントと分離するために使うことができます。接続中に送信されます。 More... | |
static string | ServerAddress [get] |
(マスターかゲームサーバーかを問わず)現在使用されているサーバーアドレス。 More... | |
static CloudRegionCode | CloudRegion [get] |
Currently used Cloud Region (if any). As long as the client is not on a Master Server or Game Server, the region is not yet defined. More... | |
static bool | connected [get] |
Photonに最初に接続するまではfalse。オフラインモードでは、どのサーバーに接続中でもサーバー切り替え中でもtrueです。 More... | |
static bool | connecting [get] |
Photonとの下層レベル接続が確立されるまでに、ConnectUsingSettings(または類似メソッド)を呼ぶとtrueです。 More... | |
static bool | connectedAndReady [get] |
改善されたconnectedです。入室・退室などの操作を受け付ける準備ができたサーバーに接続しているときのみtrueです。 More... | |
static ConnectionState | connectionState [get] |
簡単な接続状態 More... | |
static ClientState | connectionStateDetailed [get] |
詳細な接続状態(PUNを関知しません。そのため、サーバー切り替え中は「回線切断」になることがあります)。 More... | |
static ServerConnection | Server [get] |
このクライアントが現在接続している、または接続しようとしているサーバー(の型)。 More... | |
static AuthenticationValues | AuthValues [get, set] |
接続時に使用されるユーザーの認証値。 More... | |
static Room | room [get] |
現在入室しているRoom。どのRoomにも入室していないときはnullです。 More... | |
static PhotonPlayer | player [get] |
ローカルのPhotonPlayerです。いつでも使用可能で、このプレイヤーを表します。 CustomPropertiesはRoom入室前でもセット可能で、問題なく同期されます。 More... | |
static PhotonPlayer | masterClient [get] |
現在のRoomのMaster Client、または(Roomの外では)nullを返します。 More... | |
static string | playerName [get, set] |
プレイヤーのニックネームを、入室したRoom内の全員に同期します。これはPhotonPlayer.nameを設定します。 More... | |
static PhotonPlayer[] | playerList [get] |
現在のRoomにいるすべてのプレイヤーリストです。ローカルプレイヤーも含みます。 More... | |
static PhotonPlayer[] | otherPlayers [get] |
ローカルプレイヤーを含まない、他のプレイヤーリストです。 More... | |
static List< FriendInfo > | Friends [get, set] |
フレンドと、そのオンライン状況と、彼らのいるRoomの読み込み専用リスト。FindFriendsコールで初期化されるまではnullです。 More... | |
static int | FriendsListAge [get] |
フレンド一覧情報の古さ(ミリ秒)。フレンド一覧を取得する前は0です。 More... | |
static IPunPrefabPool | PrefabPool [get, set] |
Object Poolはインスタンス化されたオブジェクトインスタンスを保存して再利用できます。これはUnityデフォルトのInstantiateとDestroyメソッドを置き換えます。 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 | autoCleanUpPlayerObjects [get, set] |
この設定では、退室するプレイヤーにインスタンス作成された、GameObjectとPhotonViewを、Room内のプレイヤーが破棄すべきかを決めます。 More... | |
static bool | autoJoinLobby [get, set] |
PhotonServerSettingsアセットで設定されます。マスターサーバーに接続したとき、PhotonNetworkが「ロビー」に参加するべきかを決めます。 More... | |
static bool | EnableLobbyStatistics [get, set] |
PhotonServerSettingsアセットで設定されます。マスターサーバーから有効なロビー一覧を取得可能にします。 More... | |
static List< TypedLobbyInfo > | LobbyStatistics [get] |
trueを設定すると、マスターサーバーから、このアプリケーションで有効なロビーの情報を提供されます。 More... | |
static bool | insideLobby [get] |
このクライアントがロビーにいるときtrueです。 More... | |
static TypedLobby | lobby [get, set] |
PUNがロビーに入るか、Gameを作成するとき使われるロビー。 More... | |
static int | sendRate [get, set] |
PhotonNetworkがパケットを、1秒に何度送信するかを定義します。 これを変更するなら、'sendRateOnSerialize'も変更することを忘れないでください。 More... | |
static int | sendRateOnSerialize [get, set] |
OnPhotonSerializeがPhotonViewに、1秒何度呼ばれるかを定義します。 More... | |
static bool | isMessageQueueRunning [get, set] |
受信イベント(RPCやインスタンス作成やその他受信するすべて)の配信を一時停止するのに使われます。 More... | |
static int | unreliableCommandsLimit [get, set] |
チャンネル毎の未保証コマンドを、配信単位で制限するかどうかに使われます(一時停止後にチャンネルが多いと、未保証コマンドを多く引き起こす可能性があります)。 More... | |
static double | time [get] |
Photonのネットワークタイムです。サーバーと同期されます。 More... | |
static int | ServerTimestamp [get] |
現在のサーバーのミリ秒単位のタイムスタンプです。 More... | |
static bool | isMasterClient [get] |
自分はMaster Clientであるかどうか。 More... | |
static bool | inRoom [get] |
Roomにいる(connectionStateDetailed == PeerState.Joined)ときtrueです。 More... | |
static bool | isNonMasterClientInRoom [get] |
Room(クライアント)内にいて、しかもそのRoomのMaster Clientではないときtrueです。 More... | |
static int | countOfPlayersOnMaster [get] |
現在、Roomで探せるプレイヤー数です(マスターサーバーで5秒間隔で取得可能)。 More... | |
static int | countOfPlayersInRooms [get] |
あるRoomで、現在このアプリケーションをプレイしているユーザー数(マスターサーバーで5秒間隔で取得可能)。playerList.Countを使って、Room内のプレイヤー数を取得してください! 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... | |
PhotonNetworkプラグインを使うためのメインクラスです。 このクラスは静的クラスです。
|
static |
Master Clientに対して、シーンオブジェクトに妥当なviewIDを割り当てさせることができます。
|
static |
現在/ローカルのプレイヤーに妥当なviewIDを割り当てます。
|
static |
既存のtype型のComponentを持つGameObjectをSendMonoMessageTargetsに加えます。
type | nullなら、SendMonoMessageTargetsをコンポーネント型(デフォルトではMonobehaviour)として扱います。 |
|
static |
クライアントに回線切断(KICK)をリクエストします。Master Clientのみが実行可能です。
ターゲットプレイヤーだけがこのイベントを受信します。そのプレイヤーは自動的に回線切断され、そのことは他者にも通知されます。
kickPlayer | 回線切断(kick)されるPhotonPlayer。 |
|
static |
(Unityのpingをサポートするプラットフォーム上で)pingが最も低い地域のPhoton Cloudに接続します。
PlayerPrefsにあるクラウドサーバーすべてに対してpingした結果を保存します。これを最初に呼び出したときは2秒前後かかります。 ping結果はPhotonNetwork.OverrideBestCloudServer(..)を上書きすることがあります。 これを最初に使用するとき2秒は掛かるというのは、すべてのクラウドサーバーにpingして最適な地域をチェックしているからです。
PUN Setup Wizardは、appIDを設定ファイルに格納して、サーバーのアドレス/ポートを適用します。 Photon Cloudに接続するには、正しいAppId(Photon Cloud Dashboardに表示されています)を設定ファイルに書き込む必要があります。 https://www.photonengine.com/dashboard
Photon Cloudへの接続が失敗する原因は:
接続制限についてさらに知りたいなら: http://doc.exitgames.com/en/pun
gameVersion | このクライアントのバージョン番号。ユーザーはゲームバージョンで個々に分断されます(このおかけで、互換性を壊す変更が可能になります) |
|
static |
PhotonマスターサーバーにIPアドレス・ポート・appIDとゲーム(クライアント)バージョンで接続します。
Photon Cloudに接続するには、正しいAppId(Photon Cloud Dashboardに表示されています)を設定ファイルに書き込む必要があります。 https://www.photonengine.com/dashboard
Photon Cloudへの接続が失敗する原因は:
接続制限についてさらに知りたいなら: http://doc.exitgames.com/en/pun
<param name="masterServerAddress"サーバーのアドレス(あなた所有のものかPhoton Cloudのアドレスかを問いません)
port | サーバーの接続ポート。 |
appID | アプリケーションID(PhotonクラウドはあなたのゲームにGUIDを振ります)Your application ID (Photon Cloud provides you with a GUID for your game). |
gameVersion | このクライアントのバージョン番号。ユーザーはゲームバージョンで個々に分断されます(このおかけで、互換性を壊す変更が可能になります) |
|
static |
選択したPhoton Cloudの地域に接続します。
|
static |
エディタで設定したようにPhotonに接続します(PhotonServerSettingsファイルに保存されます)。
このメソッドはofflineModeを無効にします(どのインスタンスとして作成されたGameObjectも破棄しません)。 このメソッドはisMessageQueueRunningをtrueにします。
サーバー設定はPUNウィザードによって作られます。自前サーバーのPhotonなら、 AppIdとPhoton Cloud Gamesの地域とサーバーアドレスを含みます。 これらの設定は一般的にはそれほど頻繁には変更されません。
設定ファイルを無視してどこかに接続するにはPhotonNetwork.ConnectToMasterを呼びます。
Photon Cloudに接続するには、正しいAppId(Photon Cloud Dashboardに表示されています)を設定ファイルに書き込む必要があります。 https://www.photonengine.com/dashboard
Photon Cloudへの接続が失敗する原因は:
接続制限についてさらに知りたいなら: http://doc.exitgames.com/en/pun
gameVersion | このクライアントのバージョン番号。ユーザーはゲームバージョンで個々に分断されます(このおかけで、互換性を壊す変更が可能になります) |
|
static |
指定した名前でRoomを作成します。その名前のRoomがすでにあるときは失敗します。
もし一意なRoom名を作成したくないなら、nullか""を名前として渡すと、サーバーがroomNameを(GUIDを文字列として)割り当ててくれます。
作成されたRoomは自動的に現在使用しているロビー内に配置されます。もし特にロビーに入っていないなら、デフォルトのロビーに配置されます。
このメソッドを呼べるのはマスターサーバー上だけです。 内部的には、マスターはサーバーアドレス(と必要ならRoom名)を返します。 どちらも内部で、割り当てられたゲームサーバーとroomNameを切り替えるために使われます。
PhotonNetwork.autoCleanUpPlayerObjectsはこのRoomのAutoCleanUpプロパティになります。それはこのRoomに入室したクライアントすべてから使われます。
roomName | 作成するルームの固有の名前。 |
|
static |
ルームを作成しますが、ルームがすでに存在している場合は失敗します。マスタサーバでのみ呼び出すことができます。
成功した場合、これは、OnCreatedRoomとOnJoinedRoomコールバックを呼び出します(最初のプレイヤーとして参加するので、後者)。 ルームを作成できない場合(すでに存在するため)、OnPhotonCreateRoomFailedが呼び出されます。
固有のルーム名を作成しない場合は、nullまたは ""を名前として渡します。サーバはroomName(文字列としてGUID)を割り当てます。
ルームは任意の数のロビーで作成することができます。これらは、ルームを作成する前に存在する必要はありません(必要に応じて自動作成される)。 ロビーはサーバ側でルームのリストを分割するために使用できます。そうすることでルームリストを短く保ち、扱いやすくします。 typedLobbyパラメータを設定した場合、ルームはそのロビーに作成されます(いずれかのロビーでアクティブな場合でも)。 typedLobbyを設定しない場合、ルームは自動的に現在アクティブなロビー(もしあれば)、またはデフォルトのロビーに配置されます。
マスターサーバ上のみで呼び出します。 内部的に、マスタはサーバアドレスで応答します (必要に応じてroomNameも)。 どちらも、割り当てられたゲームサーバとroomNameに切り替えるために内部的に使用されます。
PhotonNetwork.autoCleanUpPlayerObjectsは、このルームのautoCleanUpプロパティになります。これはこのルームに参加するすべてのクライアントに使用されます。
roomName | 作成するルームの固有の名前。サーバに名前を生成させるにはnullまたは""を渡します。 |
roomOptions | maxPlayers、初期のカスタムルームのプロパティ、その他類似のものための一般的なオプション。RoomOptionsタイプを参照してください。 |
typedLobby | nullの場合、ルームは自動的に現在使用されているロビーに作成されます。(明示的に参加しない場合はdefault) |
|
static |
指定した名前でRoomを作成します。その名前のRoomがすでにあるときは失敗します。マスターサーバーだけから呼ぶことができます。
成功すると、コールバックであるOnCreatedRoomとOnJoinedRoomを呼びます(後者では、あなたは最初のプレイヤーとしてRoomに入室します)。 (すでに同名のRoomがあるので)Roomが作成されなかったときは、OnPhotonCreateRoomFailedが呼ばれます。
もし一意なRoom名を作成したくないなら、nullか""を名前として渡すと、サーバーがroomNameを(GUIDを文字列として)割り当ててくれます。
複数のRoomを複数のロビー内に作成できます。ロビーはその中にRoomを作るより前は存在できません(必要なときに自動で作られます)。 ロビーが便利なのは、サーバー側にすでにあるRoom一覧を分けるときです。 こうすると、Room一覧を短く、管理しやすくできます。 TypedLobbyパラメーターをセットすると、Roomはそのロビーに作成されます (あなたがどのロビーにいても問題ありません)。TypedLobbyをセットしないと、 Roomは、自動的に自分のいるロビーかデフォルトロビーに配置されます。
このメソッドを呼べるのはマスターサーバー上だけです。 内部的には、マスターはサーバーアドレス(と必要ならRoom名)を返します。 どちらも内部で、割り当てられたゲームサーバーとroomNameを切り替えるために使われます。
PhotonNetwork.autoCleanUpPlayerObjectsはこのRoomのAutoCleanUpプロパティになります。それはこのRoomに入室したクライアントすべてから使われます。
expectedUsersの配列を定義して、これらのユーザのためにルームのプレーヤースロットをブロックすることができます。 Photonではこの機能を「スロット予約」と呼んでいます。ドキュメントページで説明しています。
roomName | 作成するRoomの、一意な名前。nullか""を渡すと、サーバーが名前を生成してくれます。 |
roomOptions | Roomに関する標準的なオプション。たとえばmaxPlayers、最初の独自Roomプロパティなど。RoomOptions typeをご覧ください。 |
typedLobby | nullなら、自動的に現在使用中(特にロビーに入っていないならデフォルト)のロビーにRoomは作られます。 |
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 |
ターゲットプレイヤーのGameObject・PhotonView・それらの発したRPCをすべてネットワーク上から破棄します。これを呼べるのは、ローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)です。
ネットワーク上のGameObjectをRoom内で破棄するということが含むのは:
ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。
|
static |
(IDで指定した)プレイヤーのGameObject・PhotonView・それらの発したRPCをすべてネットワーク上から破棄します。これを呼べるのは、ローカルプレイヤー(自分に向けて)、またはMaster Client(全員にむけて)です。
ネットワーク上のGameObjectをRoom内で破棄するということが含むのは:
ネットワーク上のオブジェクト破棄が実行できるのは、それがPhotonNetwork.Instantiate()で作られたオブジェクトだけです。 シーンと共に読み込まれたオブジェクトは、PhotonViewコンポーネントを持つ持たないに関わらず、無視されます。
|
static |
このクライアントをPhotonサーバーと、Roomに残るプロセスから回線切断します。そしてOnDisconnectedFromPhotonを完了時に呼びます。
切断すると、クライアントは“disconnecting”メッセージをサーバーに送信します。それをすると、あなたを含む同じRoomにいるプレイヤーからの退室/回線切断メッセージのスピードが上がります (それをしないと、サーバーがこのクライアントの接続をタイムアウトします)。 オフラインモードで使うと、状態変更とイベントコールOnDisconnectedFromPhotonは即座に実行されます。 オフラインモードもfalseにセットされます。 いったん回線切断されると、クライアントから再接続可能になります。ConnectUsingSettingsを使ってください。
delegate void PhotonNetwork.EventCallback | ( | byte | eventCode, |
object | content, | ||
int | senderId | ||
) |
OnEventCallのデリゲートを使用可能にするかを決めます。
eventCodeが200未満ならデリゲートに向けて転送されます。
eventCode | 着信イベントに割り当てられた数値。 |
content | 送信者がイベントに送った内容。 |
senderId | イベントに送信したプレイヤーID。「Room」がイベントに送信したなら0でしょう。 |
|
static |
サーバータイムスタンプを更新します(非同期動作で、サーバーを往復します)
これが便利なのは、ネットワーク状態が悪いのでタイムスタンプが使用不能または不正確なときです。
|
static |
フレンド一覧のRoomとオンライン状況をリクエストします。そして結果をPhotonNetwork.Friendsに格納します。
マスターサーバーだけで動作して、しぼり込まれたユーザーの一覧がプレイしているRoomを探査します。
結果はPhotonNetwork.Friendsが有効なときに保存されます。 リストはOpFindFriendsを最初に使ったとき初期化されます(初期化前はnullです)。 一覧を更新するには、FindFriendsを再度呼んでください(5秒後に、あるいは10か20秒後に)。
ユーザは、PhotonNetwork.AuthValuesで一意のuserIdを設定することによって、自身を識別します。 これがどのように設定され使用されるかは、AuthenticationValuesの注釈を参照してください。
フレンド一覧は(Photonによっては提供されないので)別のところから持ってこなくてはなりません。
内部動作: サーバーレスポンスはinfoの2つの配列(どのインデックスもリクエストにマッチしたフレンド1人1人)を含みます: ParameterCode.FindFriendsResponseOnlineList = オンライン状況のbool[] ParameterCode.FindFriendsResponseRoomIdList = Room名のstring[] (Roomに入室していないなら空文字列)
friendsToFind | フレンドの配列(一意なplayerNameかAuthValuesを付けるよう注意) |
|
static |
特定の型を持つComponentを伴うGameObjectを検索します(FindObjectsOfTypeを使います)。
type | TypeはComponentである必要があります。 |
|
static |
サーバからゲームのカスタムリストを取得し、SQLのような「where」節に一致させて、OnReceivedRoomListUpdateコールバックをトリガーします。
オペレーションは、SqlLobbyタイプのロビーでのみ使用できます。注:そのロビーに参加する必要はありません。 これは非同期リクエストです。
終了すると、OnReceivedRoomListUpdateが呼び出されます。GetRoomList()を使用してアクセスします。
http://doc.photonengine.com/en-us/pun/current/manuals-and-demos/matchmaking-and-lobby::sql_lobby_type
typedLobby | 照会するロビー。SqlLobby型でなければなりません。 |
sqlLobbyFilter | SQLクエリ宣言。 |
|
static |
現在の、Photonサーバーへの往復にかかる時間。
|
static |
現在把握されているRoomをRoomInfo配列で取得します。ロビーにいるとき利用できて更新されます(insideLobbyをチェックしてください)。
この一覧は内部のRoom一覧をキャッシュしたコピーです。そのため、必要なら毎フレームアクセスすることも可能です。 RoomInfo毎にRoomが満室かを、入室する前に、playerCountとmaxPlayersを比較することでチェックできます。
Room名は入室のときに(JoinRoomを通して)使う必要があります。
閉まったRoomはロビーによって、一覧には載りますが、入室はできません。Roomにいるとき、どのプレイヤーも Room.visibleとRoom.openをセットしてRoomを隠し、マッチメイキングできなくしたりRoomを閉めたりできます。
|
static |
Unity Networkingとの互換性のためだけに使われます。暗号化については接続時に自動で初期化されます。
|
static |
ネットワーク越しにプレハブからインスタンス作成します。このプレハブは"Resources"フォルダー直下に配置されている必要があります。
Resourcesフォルダーのプレハブを使う代わりに、手動でInstantiateしてPhotonViewを割り当てることができます。文書を見てください。
prefabName | インスタンス作成するプレハブ名。 |
position | インスタンス作成時に適用する、Vector3で表される位置。 |
rotation | インスタンス作成時に適用する、Quaternionで表される回転。 |
group | このPhotonViewのグループ。 |
|
static |
ネットワーク越しにプレハブからインスタンス作成します。このプレハブは"Resources"フォルダー直下に配置されている必要があります。
Resourcesフォルダーのプレハブを使う代わりに、手動でInstantiateしてPhotonViewを割り当てることができます。文書を見てください。
prefabName | インスタンス作成するプレハブ名。 |
position | インスタンス作成時に適用する、Vector3で表される位置。 |
rotation | インスタンス作成時に適用する、Quaternionで表される回転。 |
group | このPhotonViewのグループ。 |
data | 付随するインスタンス作成のデータ。これはPhotonView.instantiationDataに保存されます。 |
|
static |
ネットワーク越しにプレハブからインスタンス作成します。このプレハブは"Resources"フォルダー直下に配置されている必要があります。
Master ClientのみがシーンオブジェクトをInstantiateできます。 Resourcesフォルダーのプレハブを使う代わりに、手動でInstantiateしてPhotonViewを割り当てることができます。文書を見てください。
prefabName | インスタンス作成するプレハブ名。 |
position | インスタンス作成時に適用する、Vector3で表される位置。 |
rotation | インスタンス作成時に適用する、Quaternionで表される回転。 |
group | このPhotonViewのグループ。 |
data | 付随するインスタンス作成のデータ。これはPhotonView.instantiationDataに保存されます。 |
|
static |
マスターサーバー上で、デフォルトロビーに入ります。そのロビーでは、現在使用中のRoom一覧をみることができます。
Room一覧はサーバーから送信されて更新されます。 PhotonNetwork.GetRoomList()を使ってアクセスできるのは、キャッシュされた一覧です。
Room毎に、入室前にそのRoomが満室かそうでないかをチェックする必要があります。Photonは満室のRoom一覧も用意しますが、 Roomを閉じる、または隠すと(room.open = falseとroom.visible = false)その限りではありません。
うまくいけば、クライアントにランダムなゲームに参加させることができます。以下に詳細が記述されています。 http://doc.exitgames.com/en/realtime/current/reference/matchmaking-and-lobby
現在のプレイヤーやRoom数は、ロビーに入らなくても見ることができます (ただしマスターサーバー上にいる必要があります)。countOfPlayers, countOfPlayersOnMaster, countOfPlayersInRooms, countOfRoomsを使ってください。
2つ以上のロビーを使って、Room一覧を短くすることができます。JoinLobby(TypedLobby lobby)をご覧ください。 新規Roomを作成するとき、そのRoomは現在使っているロビーかデフォルトロビーに「所属」させられます。
JoinRandomRoomをロビーに入らずに使うことができます。 ロビーに入らないために、接続する前にautoJoinLobby = falseをセットしましょう。 このとき、接続ワークフローは(実装していれば)OnConnectedToMasterを呼びます。
|
static |
マスターサーバー上でロビーに入って、有効なRoomの一覧を得ることができます。
Room一覧はサーバーから送信されて更新されます。 PhotonNetwork.GetRoomList()を使ってアクセスできるのは、キャッシュされた一覧です。
どのクライアントもその場でロビーを構成することができます。複数のRoomを複数のロビーに分割すると、 個々の一覧を短くできます。しかし、一覧が多すぎると、マッチメイキングが面倒になるかもしれません。
うまくいけば、作るロビーを一定の数に抑えることができます。たとえば、 ゲームモード毎にロビーを作ります:king of the hill向けに"koth"、free for all向けに"ffa"など。
そのときロビーの一覧はありません。
SQL型のロビーがあると、ランダム・マッチメイキングに異なるフィルタリングを導入できます。 これはスキルをベースにしたゲームに向いているかもしれません。しかしSQLロビーにおいても、プロパティを名前でフィルターという慣習も押さえておく必要があるでしょう! どちらも、以下にリンクしたマッチメイキング文書に説明してあります。
うまくいけば、クライアントにランダムなゲームに参加させることができます。以下に詳細が記述されています。 https://doc.photonengine.com/en-us/pun/v2/lobby-and-matchmaking/matchmaking-and-lobby
Room毎に、入室前にそのRoomが満室かそうでないかをチェックする必要があります。Photonは満室のRoom一覧も用意しますが、 Roomを閉じる、または隠すと(room.open = falseとroom.visible = false)その限りではありません。
現在のプレイヤーやRoom数は、ロビーに入らなくても見ることができます (ただしマスターサーバー上にいる必要があります)。countOfPlayers, countOfPlayersOnMaster, countOfPlayersInRooms, countOfRoomsを使ってください。
新規Roomを作成するとき、そのRoomは現在使っているロビーかデフォルトロビーに「所属」させられます。
JoinRandomRoomをロビーに入らずに使うことができます。 ロビーに入らないために、接続する前にautoJoinLobby = falseをセットしましょう。 このとき、接続ワークフローは(実装していれば)OnConnectedToMasterを呼びます。
typedLobby | 型のあるロビー(名前と型が必要) |
|
static |
名前付きのRoomに入室するか、その場でRoom作成するかします。誰かがすでにRoomを作ったかどうかは知らなくてもかまいません。
このメソッドを使うと、プレイヤーのグループが同じRoomに入室するのが簡単になります。 グループがroomNameを変更したら、どのプレイヤーでもJoinOrCreateRoomを呼ぶことができます。 誰が実際に入室またはRoom作成しても、問題ありません。
roomOptionsとtypedLobbyパラメーターはこのクライアントが作成したRoomだけに使うことができます。 知っての通り、このクライアントがRoom作成すると、OnJoinedRoomコールバックが呼ばれます(その後でOnJoinedRoomも呼ばれます)。
roomName | 入室するRoom名。null以外の必要があります。 |
roomOptions | まだRoomが存在しないときの、Roomに対するオプション。存在していれば値は無視されます。 |
typedLobby | 新規Roomを一覧したいロビー。Roomがすでにあり、入室済みなら無視されます。 |
|
static |
名前を付けられたルームに参加するか、その場で作成することができます。誰かがすでにルームを作成したかどうかを知る必要はありません。
これは、プレイヤーのグループが同じルームに入ることを容易にします。 グループがroomNameを交換すればどのプレイヤーもJoinOrCreateRoomを呼び出すことができ、 誰が実際にルームに参加・作成したかは関係ありません。
roomOptions と typedLobbyのパラメータはルームがこのクライアントによって実際に作成された場合にのみ使用されます。 OnCreatedRoomコールバックを取得したら、このクライアントがルームを作成したことが分かります(また、OnJoinedRoomが呼び出される前)。
expectedUsersの配列を定義して、これらのユーザのためにルームのプレイヤースロットをブロックすることができます。 Photonでのこの機能は、「Slot Reservation」と呼ばれていて、ドキュメントページにも記載されています。
roomName | 参加するルームの名前。非nullでなければなりません。 |
roomOptions | ルームがまだ存在しない場合のためのオプション。そうでなければ、これらの値は無視されます。 |
typedLobby | 新しいルームをリストしたいロビー。ルームが既に存在していて参加された場合は無視されます。 |
expectedUsers | このゲームに参加を予定していてスロットをブロックしたいユーザ(UserIdで)の任意のリスト。 |
|
static |
現在使われているロビーの、有効なRoomのどれかに入室します。有効なRoomがなければ失敗します。
Roomはその場で作成するとき、任意のロビー内に作成することができます。 Roomへの入室は、実際にはロビーに入らなくてもどのロビーからでも可能です。 TypedLobbyパラメーターで上書きしたJoinRandomRoomを使いましょう。
このメソッドでマッチするRoomは、1つのロビーに紐づけられたものだけです。 多くのロビーを使用しているなら、マッチするRoomを見つけるためには、JoinRandomRoomを繰り返し実行する必要があるかもしれません。 このメソッドが探し出すRoomは、現在有効なロビーか、(どのロビーにも入っていないなら) デフォルトロビーにあるRoomです。
失敗したときに、Roomを作成する(そしてそれを次にJoinRandomRoomを使う人のために有効にする)こともできます。 そうしないなら、すこし待ってから再び実行してください。
|
static |
独自プロパティのマッチした、空いているRoomに入室しようとします。現在有効なRoomがない場失敗します。
Roomはその場で作成するとき、任意のロビー内に作成することができます。 Roomへの入室は、実際にはロビーに入らなくてもどのロビーからでも可能です。 TypedLobbyパラメーターで上書きしたJoinRandomRoomを使いましょう。
このメソッドでマッチするRoomは、1つのロビーに紐づけられたものだけです。 多くのロビーを使用しているなら、マッチするRoomを見つけるためには、 JoinRandomRoomを繰り返し実行する必要があるかもしれません。このメソッドが探し出すRoomは、 現在有効なロビーか、(どのロビーにも入っていないなら)デフォルトロビーにあるRoomです。
失敗したとき、Roomを作成する(そしてそれを次にJoinRandomRoomを使う人のために有効にする) こともできます。そうしないなら、すこし待ってから再び実行してください。
expectedCustomRoomProperties | この独自プロパティにマッチするRoomのためのフィルター(string型のキーと値)。フィルター無効にするにはnullを渡します。 |
expectedMaxPlayers | 最大プレイヤー数指定のフィルター。0を指定するとどんなmaxPlayer値でも受け入れます。 |
|
static |
独自プロパティのマッチした、空いているRoomに入室しようとします。現在有効なRoomがない場合失敗します。
Roomはその場で作成するとき、任意のロビー内に作成することができます。 Roomへの入室は、実際にはロビーに入らなくてもどのロビーからでも、このoverloadを使うことで、可能です。
このメソッドでマッチするRoomは、1つのロビーに紐づけられたものだけです。 多くのロビーを使用しているなら、マッチするRoomを見つけるためには、JoinRandomRoomを繰り返し 実行する必要があるかもしれません。このメソッドが探し出すRoomは、指定されたロビーか、 (指定がないなら)現在有効なロビーか、(有効なロビーがないなら)デフォルトロビーにあるRoomです。
失敗したとき、Roomを作成する(そしてそれを次にJoinRandomRoomを使う人のために有効にする)こともできます。 そうしないなら、すこし待ってから再び実行してください。
オフラインモードでは、Roomを作成しても何もプロパティはセットされず、このJoinRandomRoomに与えた パラメーターはすべて無視されます。イベント/コールバックOnJoinedRoomが呼ばれます(enum PhotonNetworkingMessageをお読みください)。
expectedUsersの配列を定義して、これらのユーザのためにルームのプレイヤースロットをブロックすることができます。 Photonでのこの機能は、「Slot Reservation」と呼ばれていて、ドキュメントページにも記載されています。
expectedCustomRoomProperties | この独自プロパティにマッチするRoomのためのフィルター。フィルター無効にするにはnullを渡します。 |
expectedMaxPlayers | 最大プレイヤー数指定のフィルター。0を指定するとどんなmaxplayer値でも受け入れます。 |
matchingType | 使用可能なマッチメイキングアルゴリズムを1つ選びます。MatchmakingMode enumでオプションをご覧ください。 |
typedLobby | その中でRoomを探したいロビー。nullを渡すと、デフォルトロビーを使います。これは、そのロビーに入りもせず、ロビープロパティもセットしません。 |
<param name="sqlLobbyFilter"SQL型のロビーのためのフィルター文字列。
expectedUsers | このゲームに参加を予定していてスロットをブロックしたいユーザ(UserIdで)の任意のリスト。 |
|
static |
roomnameでルームに参加して、成功時にOnJoinedRoom()を呼び出します。これは、ロビーには影響されません。
成功すると、任意のスクリプトでOnJoinedRoom()メソッドが呼び出されます。ルームへの参加に反応するように実装することができます。
ルームが満室または利用不可の場合、JoinRoomは失敗します(参加を試みている間に空になる場合があります)。 エラーの場合にコールバックを取得するため、OnPhotonJoinRoomFailed()を実装します。
ロビーのリストからルームに参加するには、roomNameとしてRoomInfo.nameを使用します。 複数のロビーを使用していても、roomNameは常にアプリケーション上で「グローバル」なので、ロビーを指定する必要がありません。マスタサーバーがルームを見つけます。
Photon Cloudでは、アプリケーションはAppId,およびGameとPUNのバージョンで定義されます。
PhotonNetworkingMessage.OnPhotonJoinRoomFailed PhotonNetworkingMessage.OnJoinedRoom
roomName | 参加するルームの固有の名前。 |
|
static |
roomnameでルームに参加して、成功時にOnJoinedRoom()を呼び出します。これは、ロビーには影響されません。
成功すると、任意のスクリプトでOnJoinedRoom()メソッドが呼び出されます。ルームへの参加に反応するように実装することができます。
ルームが満室または利用不可の場合、JoinRoomは失敗します(参加を試みている間に空になる場合があります)。 エラーの場合にコールバックを取得するため、OnPhotonJoinRoomFailed()を実装します。
ロビーのリストからルームに参加するには、roomNameとしてRoomInfo.nameを使用します。 複数のロビーを使用していても、roomNameはアプリケーションにとって常にグローバルなので どのロビーにいるかを指定する必要がありません。マスターサーバがそのルームを見つけます。 Photon Cloudでは、アプリケーションはAppId,およびGameとPUNのバージョンで定義されます。
expectedUsersの配列を定義して、これらのユーザのためにルームのプレイヤースロットをブロックすることができます。 Photonでのこの機能は、「Slot Reservation」と呼ばれていて、ドキュメントページにも記載されています。
PhotonNetworkingMessage.OnPhotonJoinRoomFailed PhotonNetworkingMessage.OnJoinedRoom
roomName | 参加するルームの固有の名前。 |
expectedUsers | このゲームに参加を予定していてスロットをブロックしたいユーザ(UserIdで)の任意のリスト。 |
|
static |
ロビーから出ます。有効なRoomについて更新を受け取るのを停止します。
これはPhotonNetwork.lobbyをリセットしません! これのおかげで、 特定のロビーに後から入りやすくなります。
countOfPlayers, countOfPlayersOnMaster, countOfPlayersInRooms, countOfRoomsの値は ロビーにいなくてさえも受け取ります。
JoinRandomRoomをロビーに入らずに使うことができます。 接続するときロビーに入らないには、autoJoinLobbyを使いましょう。
|
static |
現在のRoomを退室して、マスターサーバーに戻ります。マスターサーバーではRoomに入室したりRoom作成できます。remarksをご覧ください。
autoCleanUpをfalseにしていないなら、(ネットワーク)GameObjectとPhotonViewをクリーンアップします。 マスターサーバーに戻ります。
オフラインモードでは、ローカルの「フェイク」Roomがクリーンアップされて、OnLeftRoomが即座に呼ばれます。
|
static |
ネットワークのメッセージキューを一時停止するため、レベル読み込みをラップします。オプションで、読み込んだレベルをRoom内で同期します。
読み込んだレベルをRoom内で同期するため、PhotonNetwork.automaticallySyncSceneをtrueにしてください。 するとRoom内のMaster Clientは、他のRoom内のプレイヤーと、読み込んだレベルを同期します。
レベル読み込みのあいだは、他のプレイヤーが受信するメッセージを発信しないのが賢明です。 このメソッドがそこに気をつけるには、PhotonNetwork.isMessageQueueRunning = falseにセットして、 レベルを読み込み中にキューを使用可能にします。
(同じGameObjectとPhotonViewを含まない)別のシーンを読み込む前にRPCを発行しないよう注意してください。 それを呼び出すにはOnJoinedRoomで可能です。
これはApplication.LoadLevelを使用します。
levelNumber | 読み込むレベルの数。レベル数を使うときは、それはどのクライアントでも同じになることに気をつけてください。 |
|
static |
ネットワークのメッセージキューを一時停止するため、レベル読み込みをラップします。オプションで、読み込んだレベルをRoom内で同期します。
レベル読み込みのあいだは、他のプレイヤーが受信するメッセージを発信しないのが賢明です。 このメソッドがそこに気をつけるには、PhotonNetwork.isMessageQueueRunning = falseにセットして、 レベルを読み込み中にキューを使用可能にします。
読み込んだレベルをRoom内で同期するため、PhotonNetwork.automaticallySyncSceneをtrueにしてください。 するとRoom内のMaster Clientは、他のRoom内のプレイヤーと、読み込んだレベルを同期します。
(同じGameObjectとPhotonViewを含まない)別のシーンを読み込む前にRPCを発行しないよう注意してください。 それを呼び出すにはOnJoinedRoomで可能です。
これはApplication.LoadLevelを使用します。
levelName | 読み込むレベルの数。レベル数を使うときは、それは同じRoom内のどのクライアントでも利用できることに気をつけてください。 |
|
static |
通信量統計をリセットして、再有効化します。
|
static |
NetworkStatisticsEnabledがいくつかの統計をまとめるのに使われたときのみ、使用できます。
|
static |
ConnectToBestCloudServer(string gameVersion)で使われている地域を上書きします。
このメソッドはクラウドサーバーすべてにpingした結果を上書きします。
これを使うことで、ユーザーがプレイヤー設定で手動で地域を選択する手間を省けます。
注記:PhotonNetwork.ConnectToRegionを使って(一時的に)特定の地域に接続することもできます。
|
static |
Room内の、一からカスタマイズ可能なイベントを送信します。イベントは少なくともEventCode (0..199)と内容で構成されています。
誰かが送信したイベントを受信するには、PhotonNetwork.OnEventCallに、イベントを扱うメソッドを登録してください。
例: private void OnEventHandler(byte eventCode, object content, int senderId) { Debug.Log("OnEventHandler"); }
PhotonNetwork.OnEventCall += this.OnEventHandler;
senderIdで、イベントを送信したPhotonPlayerを検索できます。 異なるタイプの内容とアクションにそれぞれ別のeventCodeを割り当てるのがベストプラクティスです。
eventContentはオプションです。何かを送信可能にするには、それが“シリアライズ可能な型”、 つまりクライアントが基本的にはbyte[]に変換したもの、である必要があります。 UnityのVector2, Vector3, Quaternionなども含む多くの基礎的な型と配列ではサポートされています。しかしTransformsやいくつかのプロジェクトが定義したクラスはサポートされていません! 自分のクラスを“シリアライズ可能な型”にするには、CustomTypes.csの例に従ってください。
RaiseEventOptionsにはいくつかの(あまり直感的ではない)コンビネーションルールがあります: targetActors(PhotonPlayer.IDの値の配列)をセットすると、receiversパラメーターは無視されます。 イベントキャッシュを使うと、targetActor(ターゲットプレイヤー)・receiver(受信者)・interestGroup(インタレスト・グループ)は使われません。バッファリングされたイベントを使用します。 もしcachingOption removeFromRoomCacheを使うと、eventCodeと内容は実際には送信されず、フィルターとして使われます。
eventCode | 1バイトでイベント型を表します。アクションごとにコードを変えて使いたいとか、どのコンテントか予想できるシグナルにしたくなるかもしれません。使える値の範囲は 0..199 です。 |
eventContent | いくつかのシリアライズ可能なオブジェクト、たとえばstring, byte, integer, float(など)とその配列。Hashtableにバイトキーも変数変数内容を送信するのによいです。 |
sendReliable | このイベントがすべてのプレイヤーに届くか確認します。認識されるのに必要なのは、通信帯域とスキップされないこと(データ損失に備えてラグを追加してもよい)です。 |
options | イベントをより複雑に使うことができます。nullならRaiseEventOptions.Defaultが(良好なら)使われます。 |
|
static |
切断後、マスタサーバーに再接続するために使用することができます。
接続が失われたら、これを使用してクライアントをリージョンマスタサーバに再度接続することができます。 ルーム名をキャッシュし、ReJoin(roomname)を使用してゲームに戻ります。 一般的なユースケース:iOSデバイス上のロックボタンを押すと、すぐに切断されます。
|
static |
クライアントがゲームプレイ中に接続を失った場合、このメソッドは再接続してルームへの再入室を試みます。
このメソッドは、PUNが前にいたルームをホストしているゲームサーバに直接再接続します。 その間にルームが終了した場合は、PUNはOnPhotonJoinRoomFailedを呼び出して、マスターサーバにこのクライアントを返します。
このクライアントが再接続を試みて再び参加する場合は(条件が満たされている場合)、戻り値を確認してください。 ReconnectAndRejoinがfalseを返した場合でも、ReconnectとReJoinを試みることができます。
PhotonNetwork.ReJoinと同様に、プレイヤーごとに固有のIDを使用する必要があります(UserID)。
|
static |
クラウドサーバーすべてに再pingして、(現在)ping値が最もよいものを探します。
|
static |
切断後にルームに戻り、再接続するために使用することができます。
接続を失った後、クライアントが速やかに再接続できればルームに戻りプレイを継続できるかもしれません。Reconnect()とこのメソッドを使用します。
Cache the room name you're in and use ReJoin(roomname) to return to a game.
注意:どのルームに再び参加する場合も、UserIdを使用する必要があります! またRoomOptions.PlayerTtlを設定する必要があります。
重要: Instantiate() とRPCの使用はまだ対応されていません PhotonViewの所有者の規則は、ゲームへのシームレスな復帰を防ぎます。 代わりに、イベント・キャッシングでCustom PropertiesとRaiseEventを使用してください。
一般的なユースケース:iOSデバイス上のロックボタンを押すと、すぐに切断されます。
|
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 |
targetGroupに送信される、サーバーでバッファリングされたRPCを、すべて削除します。Master Clientと、targetPhotonViewの所有者が、これを呼ぶことができます。
このメソッドは以下のどちらも必要です:
targetGroup | RPCをすべて削除されたインタレスト・グループ。 |
|
static |
即座にRPCを送信しInstantiate(インスタンス作成)を呼び出すのに使われます。それらは他のプレイヤーに向かいます。
レベルを読み込むRPCを送出し、その後で自身で読み込むことは便利です。 読み込み中はRPCは他者には送信されないので、RPCを「読み込む」のは遅れるでしょう。 このメソッドを使って、RPCを「他者」に送信してメッセージキューを (isMessageQueueRunningで)利用不可にしてから読み込みできます。
|
static |
指定されたインタレストグループ(PhotonViewsに適用)で受信を有効/無効にします。
クライアントは関心のあるインタレストグループをサーバに伝えることができます。 サーバは、そのクライアントへのインタレストグループのイベントのみを転送します(バンド幅とパフォーマンスを節約します)。
参照: https://doc.photonengine.com/en-us/pun/current/manuals-and-demos/interestgroupsinterestgroups
参照:https://doc.photonengine.com/en-us/pun/current/manuals-and-demos/culling-demo
disableGroups | 無効にする(またはnullにする)関心のグループ。 |
enableGroups | 有効にする(またはnullにする)関心のグループ。 |
|
static |
後にインスタンス作成されるPhotonViewに、レベルプリフィックスをセットします。1つのPhotonViewに必要なだけならセットしないでください!
重要:複数のレベルプリフィックスを使っていないなら、単にこの値をセットしないでください。 デフォルト値は通信量から最適化されます。
これは既存のPhotonViewに影響しません(既存のPhotonViewまでは変更しません)。
異なるレベルプリフィックスを付加して送信されたメッセージは、受信されても実行されません。 この挙動はRPC、Instantiate(インスタンス作成)、同期に影響します。
PUNはこの値をリセットしないことに気をつけてください。それをするなら、自身で実行する必要があります。
prefix | 最大値はshort.MaxValue = 32767。 |
|
static |
サーバーに依頼して、別のプレイヤーを現在のRoomのMaster Clientに割り当ててもらいます。
RPCとRaiseEventには、RoomのMaster Clientだけにメッセージを送信するオプションがあります。 SetMasterClientはどのクライアントがそのメッセージを受け取るかに影響します。
このメソッドは、サーバーの新Master Clientをセットする動作を呼び出します。これはサーバーへの往復の時間がかかります。 成功すると、このクライアントと他者はサーバーから新Master Clientについて受信します。
SetMasterClientで、現在のMaster Clientは新規Master Clientに置き換えられるべきだと、サーバーに伝えます。 Master Clientが変わってから時間がたっていないなら失敗します。このエラーにはコールバックはありません。 いずれにせよ、すべてのクライアントはサーバーが割り当てた新Master Clientについて受信します。
PhotonNetwork.masterClientについてもご覧ください。
On v3 servers: (RPCから使用可能な)ReceiverGroup.MasterClientは、これに影響されません(その後もRoom内のもっとも低いplayer.IDを指します)。 このenum値を使用することは避けてください(代わりに特定のプレイヤーに送信してください)。
現在のMaster Clientが退室すると、PUNは“もっともプレイヤーIDが低い”という指標で新Master Clientを見つけます。 OnMasterClientSwitchedを実装して、この場合のコールバックを取得します。PUNの選択したMaster Clientが新Master Clientを割り当てるかもしれません。
マスター割り当てのエンドレスループを作り出すことは起こりえない、と確認してください!独自Master Clientを選んだとき、どのクライアントも同じプレイヤーを指し示しますが、 実際にそのプレイヤーに割り当てるかどうかは重要ではありません。
ローカルではMaster Clientは即座に切り替えられますが、リモートクライアントはイベントを受け取ります。 これはつまり、現在のMaster Clientが退室するときのように、ゲームが一時的にMaster Clientなしになるということです。
手動でMaster Clientを切り替えるときの注意事項は、このユーザーが退室することで、 どのMaster Clientであっても、機能しなくなるかもしれないことです。
masterClientPlayer | 次のMaster Clientになるプレイヤー。 |
|
static |
この(ローカル)プレイヤーのプロパティをセットして、他のプレイヤーにも同期します(直接編集しないでください)。
Room内では、プロパティは他のプレイヤーに同期されています。Roomに入室すると、 CreateRoom, JoinRoom, JoinRandomRoomのすべてが自分のプレイヤーの独自プロパティに適用されます。 Hashtable全体が送信されます。更新されたキー/値のみをセットすると通信量を最小化できます。
Hashtableがnullなら、その独自プロパティはクリアされます。 独自プロパティは自動ではクリアされないので、変更しない限りは、次のRoomに持ち越されます。
PhotonNetwork.player.customPropertiesを編集してプロパティをセットしないでください!
customProperties | string型のキーだけをこのハッシュテーブルに使用できます。もしnullなら独自プロパティはすべて削除されます。 |
|
static |
指定されたグループで受信は可能/不可能か(PhotonViewに適用されます)
group | 影響するインタレスト・グループ。 |
enabled | グループからの受信を可能(か不可)に設定します。 |
|
static |
指定されたグループで受信は可能/不可能か(PhotonViewに適用されます)
enableGroups | 可能にするインタレスト・グループ(またはnull)。 |
disableGroups | 不可にするインタレスト・グループ(またはnull)。 |
|
static |
|
static |
特定のグループでの送信を有効/無効にする(PhotonViewsに適用)
これは、Photonサーバ側とインタラクトしません。 これは、ブロックされたグループのいずれかに送信される場合、更新を抑制するクライアント側の設定です。
この設定は、更新がサーバや他の誰にも届かないという意味なので、特に有用ではありません。 注意して使用してください。
group | 影響を与えるインタレストグループ。 |
enabled | グループへの送信が有効かどうかを設定します。 |
|
static |
|
static |
特定のグループでの送信を有効/無効にする(PhotonViewsに適用)
これは、Photonサーバ側とインタラクトしません。 これは、ブロックされたグループのいずれかに送信される場合、更新を抑制するクライアント側の設定です。
この設定は、更新がサーバや他の誰にも届かないという意味なので、特に有用ではありません。 注意して使用してください。
enableGroups | 無効にする(またはnullにする)関心のグループ。 |
disableGroups | 有効にする(またはnullにする)関心のグループ。 |
|
static |
オフラインのとき、ネットワークプロトコルを切り替え可能になります(これは使用可能ポートに接続するときに影響します)。
プロトコルを切り替えたとき、マスターサーバーのポートも切り替えることに注意してください。デフォルトポートは: TCP: 4530 UDP: 5055
このメソッドはこれに似ています:
Connect(serverAddress, <udpport|tcpport>, appID, gameVersion)
またはConnectUsingSettings()を使うと、この設定のポートをこのように切り替え可能です:
PhotonNetwork.PhotonServerSettings.ServerPort = 4530;
現在のプロトコルは以下のようにすれば読み取れます:
PhotonNetwork.networkingPeer.UsedProtocol
これはモバイルPUN+のネイティブソケットプラグインでは動作しません!
cp | 下層レベルコネクションに使うネットワークプロトコル。UDPがデフォルトです。TCPはすべてのプラットフォームで使用不可です(remarksをご覧ください)。 |
|
static |
(手動でインスタンス作成されて破棄されたネットワーク上のオブジェクトの)viewIDの割り当てを解除します。
viewID | A viewID manually allocated by this player. |
|
static |
この操作で、独自Webサービスをname(path)と指定したパラメーターで、Photonに呼び出させることができます。
これはサーバー側機能なので、使う前に、Photon Cloud Dashboardでセットアップしなくてはなりません。
Turnbasedの機能概要の短い導入を見てください。
http://doc.photonengine.com/en/turnbased/current/getting-started/feature-overview br/> パラメーターは変換されてJSonフォーマットになります。そのためパラメーターは互換性があることに留意してください。
レスポンス取得方法のため、PhotonNetworkingMessage.OnWebRpcResponseをご覧ください。
理解するべき重要なことですが、OperationResponseはWebRPCが呼ばれたかどうかを示しているだけです。 レスポンスの内容はWebサービスが返す値とエラー/サクセスコードです。 Webサービスが失敗した場合、エラーコードとデバッグメッセージが通常は OperationResponse内部に入っています。
WebRpcResponseクラスは、WebRPCレスポンスからもっとも価値のある内容を取り出す ヘルパークラスです。
サンプルコールバック実装:
public void OnWebRpcResponse(OperationResponse response) { WebRpcResponse webResponse = new WebRpcResponse(operationResponse); if (webResponse.ReturnCode != 0) { //... }
switch (webResponse.Name) { //... } // and so on }
|
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)を確認して、実装を確認してください。
Unity's OnApplicationPause() callback is broken in some exports (Android) of some Unity versions. Make sure OnApplicationPause() gets the callbacks you'd expect on the platform you target! Check PhotonHandler.OnApplicationPause(bool pause), to see the implementation.
|
static |
trueなら、Instantiate(インスタンス作成)メソッドを呼ぶと、入室中かをチェックされます。Roomにいないなら失敗します。
Roomの外でインスタンス作成するのはいろいろ壊してしまう可能性が高くなります。 これを無効にするのは、自分が何をしているかわかっているときだけにしてください。
|
static |
ネットワーク・ログのレベル。PUNが詳細な点までログに出力するかどうかを制御できます。
|
static |
プレイヤー毎に(またはシーン毎に)割り当てられるPhotonViewの最大数。 基本説明 のトピック「制限事項」でこの制限を引き起こしている理由をご覧ください
|
static |
Unity Networkingだけに使われます。PUNではPhotonNetwork.CreateRoomを使ってプレイヤー数を指定します。
|
static |
|
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を使っているのです。
|
static |
ゲームオブジェクトへの参照を、回数の多いインスタンス作成のために保持します(Resourcesフォルダーから読み込む代わりにメモリから読み込みます)。
キャッシュはいつでも好きなときに編集可能です。ただしInstantiate(インスタンス作成)に使っているときだけは例外的に編集不可です。メインスレッドだけで実行するのが一番効率的です。
|
static |
nullでないなら、これはPUNのSendMonoMessage()に呼ばれるGameObjectの(排他的な)一覧です。
PhotonNetworkingMessageで定義されたコールバックすべてに対して、PUNはSendMonoMessageを使います。 またPUNは、FindObjectsOfType()を呼ぶことで、PUNからのコールバックを受ける可能性のあるスクリプトとGameObjectをすべて探索します。
PUNのコールバックはそれほど頻度が多くはありません(ゲーム内ではプロパティ更新が最も頻度が高いです)。 しかしFindObjectsOfTypeは時間がかかる処理で、GameObjectの数が多いと パフォーマンスが落ちることがあります。
使うのは任意ですが、SendMonoMessageTargetは、ターゲットのGameObject一覧を供給するのに使われます。 これはFindObjectsOfType()をスキップしますが、コールバックが必要などんなGameObjectも 自身を一覧に追加しなくてはならないでしょう。
nullならデフォルトの動作は、MonoBehaviourを持つGameObjectそれぞれに、SendMessageすることです。
|
static |
どのクラスがPUNのコールバック実装を含むのかを示します。
これが提供しているのは、実行時の速度を最適化するオプションです。
このTypeが特定のものであればあるほど、コールバックメソッドの影響をチェックするべきクラスが少なくなります。
|
static |
パフォーマンス上の問題になる可能性があるため、コルーチンとしてのRPCの開始を省略するために使用することができます。
|
static |
trueなら、インスタンス作成時にPhotonNetwork.PrefabCacheを使い、ゲームオブジェクトをメモリ内に保持します(同じプレハブからのインスタンス作成が改善します)。
実行時にUsePrefabCacheをfalseに指定しても、PrefabCacheはクリアされず、その場では無視されます。 キャッシュをクリーンして編集することもできます。コメントを読んでください。
|
static |
有効なら、RPCを呼ぶ主体のMonoBehaviourはキャッシュされます。コストのかさむGetComponents<MonoBehaviour>()を呼ぶのを避けるためです。
RPCは、ターゲットのPhotonViewであるMonoBehaviourに呼ばれます。このMonoBehaviourはGetComponentで見つける必要があります。
これをtrueに指定すると、MonoBehaviour一覧はそれぞれPhotonViewにキャッシュされます。 photonView.RefreshRpcMonoBehaviourCache()を使って、要求に応じて、PhotonViewが持つ MonoBehaviour一覧を手動で更新できるのです(たとえば新規MonoBehaviourがネットワーク上のGameObjectに追加されたとき)。
const string PhotonNetwork.versionPUN = "1.77" |
PUNのバージョン番号。GameVersionの中でも使われて、クライアントのバージョンを相互に分離します。
|
staticgetset |
接続時に使用されるユーザーの認証値。
Photon(と独自サービス/コミュニティ)のカスタム認証のため、接続中に使われるユーザー認証値。 カスタム認証するのであれば、これを設定したあとでConnectを呼んでください。
認証に失敗すると、PUNはOnCustomAuthenticationFailed(string debugMsg)の実装を呼び出します。 PhotonNetworkingMessage.OnCustomAuthenticationFailedをご覧ください。
|
staticgetset |
この設定では、退室するプレイヤーにインスタンス作成された、GameObjectとPhotonViewを、Room内のプレイヤーが破棄すべきかを決めます。
この設定はRoom単位で実行されます。Room作成後では変更できず、個々のクライアント設定を上書きします。
Room内でroom.AutoCleanUpが有効なら、PUNクライアントは退室時にプレイヤーのオブジェクトを破棄します。 これは手動で(RPCなどで)インスタンス化したGameObjectを含みます。 trueの場合、RPCと退室するプレイヤーがインスタンス作成したGameObjectとPhotonViewを、サーバーはクリーンアップして、 入室してくるプレイヤーがそれらを受け取らないようにします。
内部的には、Roomのカスタムプロパティとして保存されます。 デフォルトでは有効です。
|
staticgetset |
PhotonServerSettingsアセットで設定されます。マスターサーバーに接続したとき、PhotonNetworkが「ロビー」に参加するべきかを決めます。
falseなら、マスターとの接続されたときOnConnectedToMaster()が呼ばれます。 OnJoinedLobby()は呼ばれません。
デフォルトではtrueです。
Room一覧は取得できないでしょう。 ロビーに接続(してRoom一覧を送信されること)がなくても、Roomを作成/入室(ランダムに)は可能です。
|
staticgetset |
Room内のクライアントがすべて、(PhotonNetwork.LoadLevelを使っている場合)Master Clientと同じレベルをロードするべきかを決めます。
読み込むレベルを同期するためには、Master ClientはPhotonNetwork.LoadLevelを使っている必要があります。 そうであれば、すべてのクライアントは、更新のときまたは入室したときに、新しいシーンを読み込むことになります。
内部的には、Roomのカスタムプロパティが読み込んだシーンにセットされます。 クライアントが読み込んでいるのがまだ同じシーンではなくても、即座にメッセージキューを 一時停止(PhotonNetwork.isMessageQueueRunning = false)して読み込みます。 シーンの読み込みが終わると、PUNは自動的にメッセージキューを有効に戻します。
|
staticget |
Currently used Cloud Region (if any). As long as the client is not on a Master Server or Game Server, the region is not yet defined.
|
staticget |
Photonに最初に接続するまではfalse。オフラインモードでは、どのサーバーに接続中でもサーバー切り替え中でもtrueです。
|
staticget |
改善されたconnectedです。入室・退室などの操作を受け付ける準備ができたサーバーに接続しているときのみtrueです。
|
staticget |
Photonとの下層レベル接続が確立されるまでに、ConnectUsingSettings(または類似メソッド)を呼ぶとtrueです。
|
staticget |
簡単な接続状態
|
staticget |
詳細な接続状態(PUNを関知しません。そのため、サーバー切り替え中は「回線切断」になることがあります)。
オフラインモードでは(Room作成/入室した後で)PeerState.Joinedを返します。それ以外ではConnectedToMasterを返します。
|
staticget |
現在このアプリケーションをプレイしているユーザー数(マスターサーバーで5秒間隔で取得可能)。
|
staticget |
あるRoomで、現在このアプリケーションをプレイしているユーザー数(マスターサーバーで5秒間隔で取得可能)。playerList.Countを使って、Room内のプレイヤー数を取得してください!
|
staticget |
現在、Roomで探せるプレイヤー数です(マスターサーバーで5秒間隔で取得可能)。
|
staticget |
現在使用されているRoom数(マスターサーバーで5秒間隔で取得可能)。
ロビー内で、一覧にあるRoom数はPhotonNetwork.GetRoomList().Lengthでチェック可能です。 PUN v1.25からは、この値はPhotonが(すべてのRoomを数えて)送信してくる統計イベントだけを元にしています。
|
staticgetset |
Crcチェックが便利なのは、壊れたデータグラムによる問題を検知して回避できることです。接続していない状態で有効化できます。
|
staticgetset |
PhotonServerSettingsアセットで設定されます。マスターサーバーから有効なロビー一覧を取得可能にします。
Lobby Statistics(ロビー統計)が役に立つのは、ゲームが複数のロビーを使用し、 プレイヤーのそれぞれのロビーでの活動を知りたい場合です。
この値はPhotonServerSettingsに保存されます。
PhotonNetwork.LobbyStatisticsはマスターサーバーに接続したときに更新されます。 PunBehaviourコールバックも存在します。
|
staticgetset |
フレンドと、そのオンライン状況と、彼らのいるRoomの読み込み専用リスト。FindFriendsコールで初期化されるまではnullです。
このリストを編集しないでください。 これはFindFriendsによって内部的に扱われるもので、してもよいのは値を読み込むことだけです。 FriendsListAgeの値によって、データがどれだけ過去のものか、ミリ秒単位でわかります。
この一覧を耐用期間よりも短い間隔で取得しないでください(10秒以上)。最もよいやりかたは、取得する一覧を短くなるよう維持することです。 たとえば、すべての一覧を一度だけ取得して、あとはオンラインのフレンドだけにしぼって更新情報を少なめに要求することもできます。 しばらく(たとえば1分間)の後、すべての一覧を再取得(してオンライン状況を更新)することができます。
|
staticget |
フレンド一覧情報の古さ(ミリ秒)。フレンド一覧を取得する前は0です。
|
staticgetset |
このビルドのバージョン文字列。非互換のクライアントと分離するために使うことができます。接続中に送信されます。
通常は設定し、(たとえばConnectUsingSettingsで)接続するときだけ送信されます。
|
staticget |
Roomにいる(connectionStateDetailed == PeerState.Joined)ときtrueです。
多くのアクション(インスタンス作成や退室など)はRoom内だけで実行できます。 オフラインモードでもRoomに入室できます。
|
staticget |
このクライアントがロビーにいるときtrueです。
IPunCallbacks.OnReceivedRoomListUpdate()を実装して、Room一覧が有効になったか 更新されたときに通知を受け取れるようにしてください。
Roomに入室したとき、ロビーからは自動的に退出します。 ロビーはマスターサーバーにのみ存在します(一方、Roomはゲームサーバーが扱います)。
|
staticget |
自分はMaster Clientであるかどうか。
|
staticgetset |
受信イベント(RPCやインスタンス作成やその他受信するすべて)の配信を一時停止するのに使われます。
IsMessageQueueRunning == falseのとき、OnPhotonSerializeViewは呼ばれず、クライアントには何も送られません。 受信メッセージも、メッセージキューを再有効化するまではキューに追加されません。
この設定が便利なのは、最初にレベルを読み込んで、次にPhotonViewとRPCのデータを受信し続けようとしたときです。 クライアントは、受信パケットとRPC/イベントの応答を、受信し送信し続けます。 これは「ラグ」を増加させ、一時停止が長引き着信メッセージはすべてキューに貯まるだけという問題を引き起こす可能性があります。
|
staticget |
Room(クライアント)内にいて、しかもそのRoomのMaster Clientではないときtrueです。
|
staticgetset |
PUNがロビーに入るか、Gameを作成するとき使われるロビー。
デフォルトのロビーは名前に空文字列を使います。 PUNはautoJoinLobbyがtrueのとき、マスターサーバーのロビーに入ります。 その設定で接続したりRoomから退室すると、PUNによって自動的にロビーに戻ります。
クライアントがロビーにいるか知るにはPhotonNetwork.insideLobbyをチェックしてください。 (マスターサーバーとロビー)
|
staticget |
trueを設定すると、マスターサーバーから、このアプリケーションで有効なロビーの情報を提供されます。
Lobby Statistics(ロビー統計)が役に立つのは、ゲームが複数のロビーを使用し、 プレイヤーのそれぞれのロビーでの活動を知りたい場合です。ロビー毎に「名前・タイプ・Room(とプレイヤー)数」を取得できます。
PhotonNetwork.LobbyStatisticsはマスターサーバーに接続したときに更新されます。 PunBehaviour.OnLobbyStatisticsUpdateコールバックもありますが、 これは(たとえば)UIを更新するために実装する必要があります。
Lobby Statistics(ロビー統計)はデフォルトでは有効ではありません。 プロジェクトのPhotonServerSettingsファイルで有効化します。
|
staticget |
現在のRoomのMaster Client、または(Roomの外では)nullを返します。
(AIを動作させるなどの)判断を下す「権限のある」クライアント/プレイヤーとして扱われます。
現在のMaster ClientがRoomを出る(退室・回線切断)と、サーバーはすぐに別のプレイヤーに割り当てます。 現在のMaster Clientが(アプリケーションを閉じる・回線切断などで)タイムアウトすると、このクライアントに送信されるメッセージは、他クライアントには実質的に失われます。 タイムアウトになるには、Master Clientが無効になってから10秒間かかります。
IPunCallbacks.OnMasterClientSwitchedメソッドを実装して、Master Clientが切り替わったとき、呼ばれるようにしてください。
PhotonNetwork.SetMasterClientを使うと、誰か別のプレイヤー/クライアントに手動で切り替えることができます。
offlineMode == trueなら、このメソッドは常にPhotonNetwork.playerを返します。
|
staticgetset |
ACKを受信できず回線切断の引き金になるより前に、定時性メッセージを再送信できる回数。デフォルトは5。
再送信回数を減らすと、回線切断のタイミングが短くなります。その一方、再送信回数を増加すると、ラグを増加することにつながります。最小: 3、最大: 10
|
staticgetset |
このクライアントの通信量統計を集計するのを有効にするか無効にするか。
クライアントについて問題に出くわしたら、通信量統計は解決策を探すためのよい開始点になります。 統計を有効にしたときだけ、GetVitalStatsを使用可能になります。
|
staticgetset |
オフラインモードによって、あなたのマルチプレイヤーゲームのコードをシングルプレイヤーゲームモードに再利用できるようになります。 trueなら、PhotonNetworkはなにも接続しないので、オーバーヘッドがない状態に近くなります。 最も便利なのは、RPCとPhotonNetwork.Instantiateを再利用できることです。
|
staticget |
ローカルプレイヤーを含まない、他のプレイヤーリストです。
このリストはクライアントがRoomにいる間のみ有効です。 誰かが入退室した時には自動的に更新されます。
このリストはRoomにいるすべてのプレイヤーをリストするのに使えます。 それぞれのプレイヤーのPhotonPlayer.customPropertiesにアクセスできます。 (PhotonPlayer.SetCustomPropertiesで同期されます)
任意のオブジェクトを関連付けるためにPhotonPlayer.TagObjectを使うことができます。 これはネットワーク経由で同期はされません。
|
staticget |
CrcCheckEnabledがtrueのとき、正しいCRCチェックサムにならず破棄された着信パケットの数を数えます。
|
staticget |
ローカルのPhotonPlayerです。いつでも使用可能で、このプレイヤーを表します。 CustomPropertiesはRoom入室前でもセット可能で、問題なく同期されます。
|
staticget |
現在のRoomにいるすべてのプレイヤーリストです。ローカルプレイヤーも含みます。
このリストはクライアントがRoomにいる間のみ有効です。 誰かが入退室した時には自動的に更新されます。
このリストはRoomにいるすべてのプレイヤーをリストするのに使えます。 それぞれのプレイヤーのPhotonPlayer.customPropertiesにアクセスできます。 (PhotonPlayer.SetCustomPropertiesで同期されます)
任意のオブジェクトを関連付けるためにPhotonPlayer.TagObjectを使うことができます。 これはネットワーク経由で同期はされません。
|
staticgetset |
プレイヤーのニックネームを、入室したRoom内の全員に同期します。これはPhotonPlayer.nameを設定します。
playerNameはただのニックネームで、一意である必要はなく、アカウントと共にバックアップする必要もありません。
この値はいつ(たとえば接続前に)設定しても、プレイしている相手の誰に対しても有効です。
プレイヤー名には PhotonPlayer.name を使ってアクセスしてください。
PhotonNetwork.otherPlayersは他プレイヤーの一覧です。含んでいるどれもが、リモートプレイヤーが設定したplayerNameです。
|
staticgetset |
Object Poolはインスタンス化されたオブジェクトインスタンスを保存して再利用できます。これはUnityデフォルトのInstantiateとDestroyメソッドを置き換えます。
GameObject Poolを使うには、IPunPrefabPoolを実装してこれに設定する必要があります。 Prefabは名前で区別されます。
|
staticgetset |
ネットワーク上でデータ損失した場合、定時性メッセージが即再送されるのは3回までです。
定時性メッセージを1度以上損失した場合、後続の再送データは、 ネットワーク状態回復のために少し遅れます。
このオプションによって、2回目、3回目の再送をスピードアップさせます。 そうすることでタイムアウトを回避できるようにしますが、すきまをふさぐのに必要なスピードも増加します。
この変数をセットすると、PhotonNetwork.MaxResendsBeforeDisconnectの値が6から7に増加します。
|
staticget |
(ACK受信前の、ローカルでの繰り返しタイミングのために)繰り返されたコマンドの数。
この値が大きく増加すると、状態がよくないことによるタイムアウトによる回線切断は十分あり得ます。
|
staticget |
現在入室しているRoom。どのRoomにも入室していないときはnullです。
|
staticgetset |
PhotonNetworkがパケットを、1秒に何度送信するかを定義します。 これを変更するなら、'sendRateOnSerialize'も変更することを忘れないでください。
パケットを減らすほど、オーバーヘッドも減りますが、遅延が増加します。 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に戻ります。 v1.55
|
staticgetset |
チャンネル毎の未保証コマンドを、配信単位で制限するかどうかに使われます(一時停止後にチャンネルが多いと、未保証コマンドを多く引き起こす可能性があります)。