このインターフェースはPUNのコールバックメソッドの定義に使われます(OnPhotonSerializeViewを除く)。好ましくは、個別に実装します。 More...
Inherited by Photon.PunBehaviour.
Public Member Functions | |
void | OnConnectedToPhoton () |
サーバーを使用可能になる前で最初の接続が確立したとき、呼ばれます。OnJoinedLobby()またはOnConnectedToMaster()はPUNが準備完了したときに呼ばれます。 More... | |
void | OnLeftRoom () |
ローカルのユーザー/クライアントがRoomから退室したとき、呼ばれます。 More... | |
void | OnMasterClientSwitched (PhotonPlayer newMasterClient) |
現在のMaster Clientが退室して、新規Master Clientに切り替わった後で呼ばれます。 More... | |
void | OnPhotonCreateRoomFailed (object[] codeAndMsg) |
CreateRoom()コールが失敗すると、呼ばれます。オプションのパラメーターで、ErrorCodeとメッセージを受け取ることができます。 More... | |
void | OnPhotonJoinRoomFailed (object[] codeAndMsg) |
JoinRoom()が失敗すると、呼ばれます。オプションのパラメーターで、ErrorCodeとメッセージを受け取ることができます。 More... | |
void | OnCreatedRoom () |
このクライアントがRoomを作成して入室したとき、呼ばれます。OnJoinedRoom()も呼ばれます。 More... | |
void | OnJoinedLobby () |
マスターサーバーのロビーに入ったとき、呼ばれます。実際にRoom一覧が更新されると、OnReceivedRoomListUpdate()が呼ばれます。 More... | |
void | OnLeftLobby () |
ロビーを出たときに、呼ばれます。 More... | |
void | OnFailedToConnectToPhoton (DisconnectCause cause) |
接続自体は確立していますが、その後Photon Serverへの接続コールが失敗したとき、呼ばれます。その後OnDisconnectedFromPhoton()も呼ばれます。 More... | |
void | OnConnectionFail (DisconnectCause cause) |
何かの原因で(接続が確立した後)接続失敗したとき、呼ばれます。その後でOnDisconnectedFromPhoton()も呼ばれます。 More... | |
void | OnDisconnectedFromPhoton () |
Photon Serverから切断した後、呼ばれます。 More... | |
void | OnPhotonInstantiate (PhotonMessageInfo info) |
PhotonNetwork.Instantiateを使ってインスタンスを作成されたGameObject(とその子)のスクリプトすべてに対して、呼ばれます。 More... | |
void | OnReceivedRoomListUpdate () |
マスターサーバーのロビーにいる(PhotonNetwork.insideLobby)とき、Room一覧が更新されると、呼ばれます。 More... | |
void | OnJoinedRoom () |
(Room作成または入室で)Roomに入ったときに、呼ばれます。(Master Clientも含む)すべてのクライアントが呼ばれます。 More... | |
void | OnPhotonPlayerConnected (PhotonPlayer newPlayer) |
リモートプレイヤーがRoomに入室してきたら、呼ばれます。このPhotonPlayerはすでにこのときプレイヤーリストには追加済みです。 More... | |
void | OnPhotonPlayerDisconnected (PhotonPlayer otherPlayer) |
リモートプレイヤーがこのRoomを退室したときに、呼ばれます。このPhotonPlayerはすでにこのときプレイヤーリストから削除済みです。 More... | |
void | OnPhotonRandomJoinFailed (object[] codeAndMsg) |
JoinRandom()コールが失敗した後で、呼ばれます。オプションのパラメーターで、ErrorCodeとメッセージを受け取ることができます。 More... | |
void | OnConnectedToMaster () |
マスターへの接続が確立され認証された後、PhotonNetwork.autoJoinLobbyがfalseの場合に、呼ばれます。 More... | |
void | OnPhotonMaxCccuReached () |
同時に接続できるユーザー数の制限に(一時的に)到達したため、サーバーから拒否されて切断されたときに、呼ばれます。 More... | |
void | OnPhotonCustomRoomPropertiesChanged (Hashtable propertiesThatChanged) |
Roomのカスタムプロパティが変更されたとき、呼ばれます。propertiesThatChangedは、Room.SetCustomPropertiesを通して設定されたものすべてを含みます。 More... | |
void | OnPhotonPlayerPropertiesChanged (object[] playerAndUpdatedProps) |
プレイヤーのカスタムプロパティが変更されたとき、呼ばれます。プレイヤーと変更されたプロパティはobject[]として渡されます。 More... | |
void | OnUpdatedFriendList () |
サーバーが、FindFriendsのリクエストにレスポンスを返して、PhotonNetwork.Friendsを更新したとき、呼ばれます。 More... | |
void | OnCustomAuthenticationFailed (string debugMessage) |
カスタム認証が失敗したとき、呼ばれます。その後切断されます。 More... | |
void | OnCustomAuthenticationResponse (Dictionary< string, object > data) |
カスタム認証サービスが追加のデータを返したときに、呼ばれます。 More... | |
void | OnWebRpcResponse (OperationResponse response) |
WebRPCへのレスポンスが有効なときに、PUNに呼ばれます。PhotonNetwork.WebRPCをご覧ください。 More... | |
void | OnOwnershipRequest (object[] viewAndPlayer) |
別のプレイヤーが自分(現在の所有者)のPhotonViewの所有権をリクエストしたとき、呼ばれます。 More... | |
void | OnLobbyStatisticsUpdate () |
Master ServerがLobby Statisticsの更新を送信してPhotonNetwork.LobbyStatisticsを更新したときに、呼ばれます。 More... | |
void | OnPhotonPlayerActivityChanged (PhotonPlayer otherPlayer) |
リモートPhoton Playerアクティビティが変更されたときに呼び出されます。これは、PlayerTtlが0より大きい場合にのみ呼び出されます。 More... | |
void | OnOwnershipTransfered (object[] viewAndPlayers) |
PhotonViewの所有権が他のプレイヤーに移転されたときに呼び出されます。 More... | |
このインターフェースはPUNのコールバックメソッドの定義に使われます(OnPhotonSerializeViewを除く)。好ましくは、個別に実装します。
このインターフェースは実際にゲームに実装するより多く、完全になっています。 各MonoBehaviourの中でIPunCallback抜きでそれぞれのメソッドを実装することができます。
PUNは名前でコールバックを呼び出します。完全な修飾名でのコールバック実装を行わないでください。 例: IPunCallbacks.OnConnectedToPhotonでは、UnityのSendMessage()で呼び出しできません。
PUNは、これを実装するどんなスクリプトであっても、Unityのイベントとコールバックのように、そのメソッドをコールします。 コールを引き起こす状況は、メソッド毎に記述されています。
OnPhotonSerializeViewを呼ぶとき、これらのコールバックのようにはしないでください。これの使用頻度はそれらより高いので、IPunObservableの中で実装されます。
void IPunCallbacks.OnConnectedToMaster | ( | ) |
マスターへの接続が確立され認証された後、PhotonNetwork.autoJoinLobbyがfalseの場合に、呼ばれます。
もしPhotonNetwork.autoJoinLobbyをtrueの場合は、OnJoinedLobby()がこれの代わりに呼ばれます。
ロビーにいなくてもRoomの入室や作成は可能です。そのときはデフォルトロビーが使われます。 有効なRoom一覧は、PhotonNetwork.joinLobbyでロビーに入らない限り、取得できません。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnConnectedToPhoton | ( | ) |
サーバーを使用可能になる前で最初の接続が確立したとき、呼ばれます。OnJoinedLobby()またはOnConnectedToMaster()はPUNが準備完了したときに呼ばれます。
このコールバックが役に立つのは、サーバーに(技術的に)接続できるか確認中のときだけです。 ほとんどの場合、OnFailedToConnectToPhoton()とOnDisconnectedFromPhoton()を実装すれば十分です。
OnJoinedLobby()またはOnConnectedToMaster()はPUNが準備完了したときに呼ばれます。
これが呼ばれると、下層レベルの接続が確立され、PUNはAppIdやユーザーなどをバックグラウンドで送信します。 マスターサーバーからゲームサーバーへの移行のときは、これは呼ばれません。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnConnectionFail | ( | DisconnectCause | cause | ) |
何かの原因で(接続が確立した後)接続失敗したとき、呼ばれます。その後でOnDisconnectedFromPhoton()も呼ばれます。
Photon Serverへの接続が最初に確立されたときにだけ、OnConnectionFailは呼ばれます。 エラーの原因はDisconnectCauseに示されています。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnCreatedRoom | ( | ) |
このクライアントがRoomを作成して入室したとき、呼ばれます。OnJoinedRoom()も呼ばれます。
Roomを作成したクライアント上でだけ、このコールバックは呼ばれます(PhotonNetwork.CreateRoomを見てください)。
どのクライアントも接続終了(または回線切断)するかもしれないので、 Roomの作成者がOnCreatedRoomを実行しない可能性はあります。
特定のRoomプロパティまたは「start signal」が必要なら、OnMasterClientSwitched()を実装して 新規Master ClientにRoom状況をチェックしてもらうほうが安全です。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnCustomAuthenticationFailed | ( | string | debugMessage | ) |
カスタム認証が失敗したとき、呼ばれます。その後切断されます。
独自認証が失敗する理由は、ユーザーが誤ったトークン/シークレットを入力した場合などです。 認証が成功すれば、このメソッドは呼ばれません。OnJoinedLobby()またはOnConnectedToMaster()を(通常時のため)実装してください。
ゲーム開発中は、サーバー側のまちがった設定のせいで失敗しているかもしれません。 その場合、debugMessageをログに記録しておくのはたいへん重要です。
カスタム認証サービスを(ダッシュボードで) アプリケーションに設定しない限りは、これは呼ばれません。
debugMessage | なぜ認証が失敗したかのデバッグメッセージ。これは開発中の期間に修正されるべきです。 |
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnCustomAuthenticationResponse | ( | Dictionary< string, object > | data | ) |
カスタム認証サービスが追加のデータを返したときに、呼ばれます。
カスタム認証サービスはそのレスポンスに独自のデータを含めることができます。 独自のデータがある時、そのデータはDictionaryとしてこのコールバックで参照できます。 データのキーが文字列であるべきで、値は文字列または数値となります。(JSONによる) 値の型が期待するものであるかどうかは、確認する必要があります。数値は(現在のところ)int64です。
例: void OnCustomAuthenticationResponse(Dictionary<string, object> data) { ... }
https://doc.photonengine.com/ja/realtime/current/reference/custom-authentication
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnDisconnectedFromPhoton | ( | ) |
Photon Serverから切断した後、呼ばれます。
場合により、OnDisconnectedFromPhotonが呼ばれる前に、ほかのコールバックが呼ばれることがあります。 例: OnConnectionFail() と OnFailedToConnectToPhoton()
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnFailedToConnectToPhoton | ( | DisconnectCause | cause | ) |
接続自体は確立していますが、その後Photon Serverへの接続コールが失敗したとき、呼ばれます。その後OnDisconnectedFromPhoton()も呼ばれます。
そもそもサーバーに到達できないときは、これの代わりに、OnFailedToConnectToPhotonが呼ばれます。 エラーの原因はDisconnectCauseに示されています。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnJoinedLobby | ( | ) |
マスターサーバーのロビーに入ったとき、呼ばれます。実際にRoom一覧が更新されると、OnReceivedRoomListUpdate()が呼ばれます。
注記: PhotonNetwork.autoJoinLobbyがfalseのときは, OnConnectedToMaster()が呼ばれ、Room一覧は使用可能になりません。
ロビーにいる間は、Room一覧は、特定の間隔(これを変更はできません)で自動的に更新されます。 Room一覧が使用可能になるのは、OnJoinedLobby()の後、さらにOnReceivedRoomListUpdate()が呼ばれたときです。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnJoinedRoom | ( | ) |
(Room作成または入室で)Roomに入ったときに、呼ばれます。(Master Clientも含む)すべてのクライアントが呼ばれます。
このメソッドの一般的な用途は、プレイヤーキャラクターのインスタンスを作成することです。 もし対戦が「有効な状態」で開始されるなら、その代わりに、ユーザーがボタンを押したかタイマーで引き起こされたPunRPCを呼ぶことができます。
これが呼ばれると、PhotonNetwork.playerListを通して、存在するプレイヤーにアクセスできるようになっています。 カスタムプロパティも、すでにRoom.customPropertiesとして使用可能になっています。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnLeftLobby | ( | ) |
ロビーを出たときに、呼ばれます。
ロビーを出ると、CreateRoom とJoinRandomRoom は自動的にデフォルトロビーを参照します。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnLeftRoom | ( | ) |
ローカルのユーザー/クライアントがRoomから退室したとき、呼ばれます。
Roomを退室すると、PUNはそのプレイヤーをマスターサーバーに戻します。 ロビーを使うかRoomに入室/作成できるようになる前に、OnJoinedLobby()またはOnConnectedToMaster()は再度呼ばれます。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnLobbyStatisticsUpdate | ( | ) |
Master ServerがLobby Statisticsの更新を送信してPhotonNetwork.LobbyStatisticsを更新したときに、呼ばれます。
このコールバックには2つの前提条件があります: このクライアントが接続する前に、EnableLobbyStatisticsがtrueと設定されていること。 クライアントは、ロビーについての情報を提供しているMaster Serverに接続していること。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnMasterClientSwitched | ( | PhotonPlayer | newMasterClient | ) |
現在のMaster Clientが退室して、新規Master Clientに切り替わった後で呼ばれます。
このクライアントがRoomに入室していると、呼ばれません。 このメソッドが呼ばれた時、以前のMaster Clientはまだプレイヤーリストに残っています。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnOwnershipRequest | ( | object[] | viewAndPlayer | ) |
別のプレイヤーが自分(現在の所有者)のPhotonViewの所有権をリクエストしたとき、呼ばれます。
viewAndPlayerパラメーターが含むのは:
PhotonView view = viewAndPlayer[0] as PhotonView;
PhotonPlayer requestingPlayer = viewAndPlayer[1] as PhotonPlayer;
viewAndPlayer | PhotonViewはviewAndPlayer[0]にあり、リクエストしたプレイヤーはviewAndPlayer[1]にあります。 |
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnOwnershipTransfered | ( | object[] | viewAndPlayers | ) |
PhotonViewの所有権が他のプレイヤーに移転されたときに呼び出されます。
パラメータviewAndPlayersに次が含まれます:
PhotonView;としてPhotonView view = viewAndPlayers[0]
PhotonPlayer;としてPhotonPlayer newOwner = viewAndPlayers[1]
PhotonPlayer;としてPhotonPlayer oldOwner = viewAndPlayers[2]
void OnOwnershipTransfered(object[] viewAndPlayers) {} //
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnPhotonCreateRoomFailed | ( | object[] | codeAndMsg | ) |
CreateRoom()コールが失敗すると、呼ばれます。オプションのパラメーターで、ErrorCodeとメッセージを受け取ることができます。
もっともよくある理由は、Room名がすでに使われていた(他のクライアントが自分より早かった)場合です。 もしPhotonNetwork.logLevel >= PhotonLogLevel.Informationalなら、PUNはいくつかの情報をログに記録します。
codeAndMsg | codeAndMsg[0] はshort型のエラーコード。codeAndMsg[1]はstring型のデバッグメッセージ。 |
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnPhotonCustomRoomPropertiesChanged | ( | Hashtable | propertiesThatChanged | ) |
Roomのカスタムプロパティが変更されたとき、呼ばれます。propertiesThatChangedは、Room.SetCustomPropertiesを通して設定されたものすべてを含みます。
v1.25から、このメソッドは1パラメーターになりました: Hashtable propertiesThatChanged. プロパティ変更はRoom.SetCustomPropertiesによって実行されなければなりません。これはローカルのコールバックにも影響します。
propertiesThatChanged |
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnPhotonInstantiate | ( | PhotonMessageInfo | info | ) |
PhotonNetwork.Instantiateを使ってインスタンスを作成されたGameObject(とその子)のスクリプトすべてに対して、呼ばれます。
PhotonMessageInfoパラメーターは誰がオブジェクトを作成したか、そしていつ(PhotonNetworking.timeを元にしません)作成したかの情報を提供します。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnPhotonJoinRoomFailed | ( | object[] | codeAndMsg | ) |
JoinRoom()が失敗すると、呼ばれます。オプションのパラメーターで、ErrorCodeとメッセージを受け取ることができます。
もっともよくある理由は、Roomが存在しないか、Roomが満室(他のクライアントが自分より早かった)の場合です。 もしPhotonNetwork.logLevel >= PhotonLogLevel.Informationalなら、PUNはいくつかの情報をログに記録します。
codeAndMsg | codeAndMsg[0] はshort型のエラーコード。codeAndMsg[1]はstring型のデバッグメッセージ。 |
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnPhotonMaxCccuReached | ( | ) |
同時に接続できるユーザー数の制限に(一時的に)到達したため、サーバーから拒否されて切断されたときに、呼ばれます。
これが起こると、ユーザーはあとで再接続するかもしれません。そのクライアントは回線を切断されているので、OnPhotonMaxCcuReached()でRoom作成/入室はできません。 Photon Serverをご利用の場合は新規ライセンスを取得して、またPhoton Cloudをご利用の場合は契約を変更して、CCU制限値を上げることができます。 Photon Cloudでは、ダッシュボード(Webページ)でCCUを見ることができます。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnPhotonPlayerActivityChanged | ( | PhotonPlayer | otherPlayer | ) |
リモートPhoton Playerアクティビティが変更されたときに呼び出されます。これは、PlayerTtlが0より大きい場合にのみ呼び出されます。
PhotonPlayer.IsInactiveを使用して、プレイヤーの現在のアクティビティ状態を確認します。
例:void OnPhotonPlayerActivityChanged(PhotonPlayer otherPlayer) {...}
このコールバックには前提条件があります。 PlayerTtlは0より大きくなければなりません。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnPhotonPlayerConnected | ( | PhotonPlayer | newPlayer | ) |
リモートプレイヤーがRoomに入室してきたら、呼ばれます。このPhotonPlayerはすでにこのときプレイヤーリストには追加済みです。
もしゲームを始めるのにある程度のプレイヤー数が必要なら、このコールバックで、 Room.playerCountを確認してゲーム開始できるかわかるので便利です。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnPhotonPlayerDisconnected | ( | PhotonPlayer | otherPlayer | ) |
リモートプレイヤーがこのRoomを退室したときに、呼ばれます。このPhotonPlayerはすでにこのときプレイヤーリストから削除済みです。
クライアントがPhotonNetwork.leaveRoomを呼ぶと、PUNはこのメソッドを、残ったクライアントに対して呼びます。 リモートクライアントが回線切断したか接続終了すると、タイムアウトの数秒後に、 このコールバックが実行されます。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnPhotonPlayerPropertiesChanged | ( | object[] | playerAndUpdatedProps | ) |
プレイヤーのカスタムプロパティが変更されたとき、呼ばれます。プレイヤーと変更されたプロパティはobject[]として渡されます。
v1.25から、このメソッドは1パラメーターになりました: object[] playerAndUpdatedProps これは2つのエントリーがあります。
[0] は影響を受けたPhotonPlayer。
[1] は変更されたプロパティのHashtable。
object[]を使う理由は、UnityのGameObject.SendMessageの制限のためです。(これは1つだけしかオプションのパラメーターを持てないのです)。
プロパティ変更はRoom.SetCustomPropertiesによって実行されなければなりません。これはローカルのコールバックにも影響します。
例:
void OnPhotonPlayerPropertiesChanged(object[] playerAndUpdatedProps) { PhotonPlayer player = playerAndUpdatedProps[0] as PhotonPlayer; Hashtable props = playerAndUpdatedProps[1] as Hashtable; //... }
playerAndUpdatedProps | PhotonPlayerとプロパティの内容を含みます。詳細はRemarksを参照してください。 |
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnPhotonRandomJoinFailed | ( | object[] | codeAndMsg | ) |
JoinRandom()コールが失敗した後で、呼ばれます。オプションのパラメーターで、ErrorCodeとメッセージを受け取ることができます。
もっともよくある理由は、すべてのRoomが満室、または利用可能なRoomがないことです。 複数ロビーを(JoinLobbyまたはTypedLobbyを通して)使っているなら、別のロビーにはマッチするRoomがあるかもしれません。 もしPhotonNetwork.logLevel >= PhotonLogLevel.Informationalなら、PUNはいくつかの情報をログに記録します。
codeAndMsg | codeAndMsg[0] はshort型のエラーコード。codeAndMsg[1]はstring型のデバッグメッセージ。 |
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnReceivedRoomListUpdate | ( | ) |
マスターサーバーのロビーにいる(PhotonNetwork.insideLobby)とき、Room一覧が更新されると、呼ばれます。
PUNはRoom一覧をPhotonNetwork.GetRoomList()で提供しています。
RoomInfoのどのアイテムも、独自プロパティ(Room作成時にロビーの一覧として提供されます)を含む可能性があります。
どのタイプのロビーもRoom一覧をクライアントに提供するわけではありません。いくつかのロビーはクライアントに発信しないタイプで、サーバー側のマッチメイキングに特化されています。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnUpdatedFriendList | ( | ) |
サーバーが、FindFriendsのリクエストにレスポンスを返して、PhotonNetwork.Friendsを更新したとき、呼ばれます。
フレンド一覧はPhotonNetwork.Friendsで取得できます。それで得られる情報は、 名前一覧・オンライン状況・入室しているRoom(入室している場合)です。
Implemented in Photon.PunBehaviour.
void IPunCallbacks.OnWebRpcResponse | ( | OperationResponse | response | ) |
WebRPCへのレスポンスが有効なときに、PUNに呼ばれます。PhotonNetwork.WebRPCをご覧ください。
重要: Photonが自分のWebサービスに到達できていれば、response.ReturnCodeは0です。 レスポンスの内容は、自分のWebサービスが送信したものです。そこからWebResponseインスタンスを作成することができます。 例: WebRpcResponse webResponse = new WebRpcResponse(operationResponse);
注釈: OperationResponseクラスは、下記のnamespaceにいる必要があります: using ExitGames.Client.Photon; // OperationResponse(と他のクラス)を含みます
PhotonのOperationResponse.ReturnCodeは:
0 は "OK" -3 は "Webサービスが設定されていない" (Dashboard / WebHooksを見てください) -5 は "WebサービスにRPC path/nameがない" (少なくともAzureでは)
Implemented in Photon.PunBehaviour.