Photon Unity Networking  v1.84
English | 日本語 | 한국
Public Member Functions | List of all members
IPunCallbacks Interface Reference

このインターフェースは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...
 

Detailed Description

このインターフェースはPUNのコールバックメソッドの定義に使われます(OnPhotonSerializeViewを除く)。好ましくは、個別に実装します。

このインターフェースは実際にゲームに実装するより多く、完全になっています。 各MonoBehaviourの中でIPunCallback抜きでそれぞれのメソッドを実装することができます。

PUNは名前でコールバックを呼び出します。完全な修飾名でのコールバック実装を行わないでください。 例: IPunCallbacks.OnConnectedToPhotonでは、UnityのSendMessage()で呼び出しできません。

PUNは、これを実装するどんなスクリプトであっても、Unityのイベントとコールバックのように、そのメソッドをコールします。 コールを引き起こす状況は、メソッド毎に記述されています。

OnPhotonSerializeViewを呼ぶとき、これらのコールバックのようにはしないでください。これの使用頻度はそれらより高いので、IPunObservableの中で実装されます。

Member Function Documentation

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をログに記録しておくのはたいへん重要です。

カスタム認証サービスを(ダッシュボードで) アプリケーションに設定しない限りは、これは呼ばれません。

Parameters
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 ( )

ロビーを出たときに、呼ばれます。

ロビーを出ると、CreateRoomJoinRandomRoom は自動的にデフォルトロビーを参照します。

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;

Parameters
viewAndPlayerPhotonViewは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はいくつかの情報をログに記録します。

Parameters
codeAndMsgcodeAndMsg[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によって実行されなければなりません。これはローカルのコールバックにも影響します。

Parameters
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はいくつかの情報をログに記録します。

Parameters
codeAndMsgcodeAndMsg[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;
    //...
}
Parameters
playerAndUpdatedPropsPhotonPlayerとプロパティの内容を含みます。詳細はRemarksを参照してください。

Implemented in Photon.PunBehaviour.

void IPunCallbacks.OnPhotonRandomJoinFailed ( object[]  codeAndMsg)

JoinRandom()コールが失敗した後で、呼ばれます。オプションのパラメーターで、ErrorCodeとメッセージを受け取ることができます。

もっともよくある理由は、すべてのRoomが満室、または利用可能なRoomがないことです。 複数ロビーを(JoinLobbyまたはTypedLobbyを通して)使っているなら、別のロビーにはマッチするRoomがあるかもしれません。 もしPhotonNetwork.logLevel >= PhotonLogLevel.Informationalなら、PUNはいくつかの情報をログに記録します。

Parameters
codeAndMsgcodeAndMsg[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.