接続コールバック
目次
概要
事前設定
接続コールバック一覧
OnConnectedToMonobit メソッド
OnConnectToServerFailed メソッド
OnMonobitMaxConnectionReached メソッド
OnConnectedToServer メソッド
OnJoinedLobby メソッド
OnUpdatedSearchPlayers メソッド
OnReceivedRoomListUpdate メソッド
OnLobbyDataUpdate メソッド
OnCreatedRoom メソッド
OnCreateRoomFailed メソッド
OnJoinedRoom メソッド
OnJoinRoomFailed メソッド
OnMonobitRandomJoinFailed メソッド
OnOtherPlayerConnected メソッド
OnHostChanged メソッド
OnMonobitInstantiate メソッド
OnMonobitCustomRoomParametersChanged メソッド
OnMonobitPlayerParametersChanged メソッド
OnMonobitSerializeView メソッド
OnOwnershipRequest メソッド
OnConnectionFail メソッド
OnOtherPlayerDisconnected メソッド
OnLeftRoom メソッド
OnLeftLobby メソッド
OnDisconnectedFromServer メソッド
MUNサーバとの通信状況を知るためのコールバックメソッド
MUNサーバに接続し、様々なネットワーク機能を使う中で、いくつかの例外に遭遇するケースが考えられます。
例えば、サーバ接続に失敗したり、ネットワーク断線による途中切断だったり、その種類は少なくありません。
また、単なる「サーバに接続している / いない」だけではなく、より詳細の、
例えば「作成しようとしたルームと同名のルームがあり、ルーム作成に失敗した」り、
「ルーム入室しようとしたが、どのルームも満員で入室できなかった」り、そういった例外も存在します。
MUNではそういった例外処理を行なうために、いくつかのコールバックが用意されています。
ここではその種類について触れておきましょう。
事前設定▲
MonobitEngine.MonoBehaviour を継承している必要があります。
接続コールバックは、MonobitEngine.MonoBehaviour に登録されている interface を利用して呼び出されます。
そのため、接続コールバックを利用するためには、その利用スクリプト内で MonobitEngine.MonoBehaviour を継承する必要があります。
出来ることならば、MonobitEngine.MunMonoBehaviour を継承して、override で接続コールバックを記述することを推奨します。
接続コールバックは、それぞれ「メソッド」として定義してください。
MonobitEngine.MonoBehaviour に定義されているのは interface であり、実体はありません。
接続コールバックを利用するためには、その利用スクリプト内で「メソッド」として定義する必要があります。
接続コールバック一覧▲
接続コールバックの一覧です。
OnConnectedToMonobit メソッド▲
機能
サーバへ接続したときにコールされます。
ただし、この段階ではまだMUNで通信ができる状態にはなっていません。(認証処理前にコールされます。)
引数
戻り値
記述例
// サーバに接続したときにデバッグログを出力します。
public void OnConnectedToMonobit()
{
Debug.Log("OnConnectedToMonobit");
}
OnConnectToServerFailed メソッド▲
機能
サーバとの接続が確立しなかったときにコールされます。
引数
型 |
変数名 |
内容 |
MonobitEngine.DisconectCause |
cause |
以下のいずれかの値を取ります。
ExceptionOnConnect |
接続を確立できませんでした。サーバが稼働していません。
|
DisconnectByServer |
サーバとの接続がタイムアウトしました。 |
MaxCcuReached |
同時接続数の最大値を超えています。 |
|
戻り値
記述例
// サーバに接続できなかったときにデバッグログを出力します。
public void OnConnectToServerFailed( MonobitEngine.DisconnectCause cause )
{
Debug.Log("OnConnectToServerFailed : cause = " + cause.ToString() );
}
OnMonobitMaxConnectionReached メソッド▲
機能
同時接続可能なユーザーの制限に達し、サーバとの接続が出来なかったときにコールされます。
引数
戻り値
記述例
// 同時接続数制限に達したときにデバッグログを出力します。
public void OnMonobitMaxConnectionReached()
{
Debug.Log("OnMonobitMaxConnectionReached");
}
OnConnectedToServer メソッド▲
機能
サーバへの接続が確立し、認証処理も終了したときにコールされます。
このコールバックは MonobitEngine.MonobitNetwork.autoJoinLobby = false に設定している場合に有効です。
MonobitEngine.MonobitNetwork.autoJoinLobby = true に設定している場合には、このコールバックの代わりに
OnJoinedLobby がコールされます。
引数
戻り値
記述例
// サーバに接続&認証完了したときにデバッグログを出力します。
public void OnConnectedToServer()
{
Debug.Log("OnConnectedToServer");
}
OnJoinedLobby メソッド▲
機能
自身がロビーに入室したときにコールされます。
引数
戻り値
記述例
// ロビーに入室したときに、デバッグログを出力します。
public void OnJoinedLobby()
{
Debug.Log("OnJoinedLobby");
}
OnUpdatedSearchPlayers メソッド▲
機能
MonobitEngine.MonobitNetwork.SearchPlayers() のリクエストに対し、サーバがレスポンスを返し、
MonobitEngine.MonobitNetwork.SearchPlayerList が更新されたときにコールされます。
引数
戻り値
記述例
// フレンドリストが更新されたときに、デバッグログを出力します。
public void OnUpdatedSearchPlayers()
{
Debug.Log("OnUpdatedSearchPlayers");
}
OnReceivedRoomListUpdate メソッド▲
機能
ルームの一覧がサーバによって更新されたときにコールされます。
引数
戻り値
記述例
// ルーム一覧が更新されたときに、デバッグログを出力します。
public void OnReceivedRoomListUpdate()
{
Debug.Log("OnReceivedRoomListUpdate");
}
OnLobbyDataUpdate メソッド▲
機能
サーバがロビーの統計情報をクライアントに送信し、MonobitNetwork.LobbyStatistics が更新されたときにコールされます。
現在のMUNでは空実装となっております。
引数
戻り値
記述例
// ロビー統計情報が更新されたときに、デバッグログを出力します。
public void OnLobbyDataUpdate()
{
Debug.Log("OnLobbyDataUpdate");
}
OnCreatedRoom メソッド▲
機能
ルームの作成に成功したときにコールされます。
引数
戻り値
記述例
// ルームを生成したときに、デバッグログを出力します。
public void OnCreatedRoom()
{
Debug.Log("OnCreatedRoom");
}
OnCreateRoomFailed メソッド▲
機能
ルームの作成に失敗したときにコールされます。
引数
型 |
変数名 |
内容 |
object[] |
codeAndMsg |
codeAndMsg[0] にはint型のエラーコード、codeAndMsg[1]には string 型のデバッグメッセージが入ります。 |
戻り値
記述例
// ルームの作成に失敗した時に、デバッグログを出力します。
public void OnCreateRoomFailed(object[] codeAndMsg)
{
Debug.Log("OnCreateRoomFailed : errorCode = " + codeAndMsg[0] + ", message = " + codeAndMsg[1] );
}
OnJoinedRoom メソッド▲
機能
自身がルームに入室した時にコールされます。
引数
戻り値
記述例
// ルームに入室したときに、デバッグログを出力します。
public void OnJoinedRoom()
{
Debug.Log("OnJoinedRoom");
}
OnJoinRoomFailed メソッド▲
機能
自身のルームの入室に失敗したときにコールされます。
引数
型 |
変数名 |
内容 |
object[] |
codeAndMsg |
codeAndMsg[0] にはint型のエラーコード、codeAndMsg[1]には string 型のデバッグメッセージが入ります。 |
戻り値
記述例
// ルームの入室に失敗した時に、デバッグログを出力します。
public void OnJoinRoomFailed(object[] codeAndMsg)
{
Debug.Log("OnJoinRoomFailed : errorCode = " + codeAndMsg[0] + ", message = " + codeAndMsg[1] );
}
OnMonobitRandomJoinFailed メソッド▲
機能
自身がランダム入室に失敗したときにコールされます
引数
型 |
変数名 |
内容 |
object[] |
codeAndMsg |
codeAndMsg[0] にはint型のエラーコード、codeAndMsg[1]には string 型のデバッグメッセージが入ります。 |
戻り値
記述例
// ルームのランダム入室に失敗した時に、デバッグログを出力します。
public void OnMonobitRandomJoinFailed(object[] codeAndMsg)
{
Debug.Log("OnMonobitRandomJoinFailed : errorCode = " + codeAndMsg[0] + ", message = " + codeAndMsg[1] );
}
OnOtherPlayerConnected メソッド▲
機能
ルーム内に自身以外の誰かが、ルームに入室したときにコールされます。
引数
型 |
変数名 |
内容 |
MonobitEngine.MonobitPlayer |
newPlayer |
入室してきたプレイヤーの情報 |
戻り値
記述例
// ルームに誰かが入室してきた時に、デバッグログを出力します。
public void OnOtherPlayerConnected(MonobitEngine.MonobitPlayer newPlayer)
{
Debug.Log("OnOtherPlayerConnected : playerName = " + newPlayer.name );
}
OnHostChanged メソッド▲
機能
現在のホストが退室・委譲を行ない、新規ホストに切り替わったときにコールされます。
引数
型 |
変数名 |
内容 |
MonobitEngine.MonobitPlayer |
newHost |
新規ホストとなったプレイヤーの情報 |
戻り値
記述例
// ホストが変更されたときに、デバッグログを出力します。
public void OnHostChanged(MonobitEngine.MonobitPlayer newHost)
{
Debug.Log("OnHostChanged : playerName = " + newHost.name );
}
OnMonobitInstantiate メソッド▲
機能
自身、もしくはルーム内の誰かが、MonobitEngine.MonobitNetwork.Instantiate を使ってプレハブをインスタンス化したときにコールされます。
インスタンス化対象となるプレハブにアタッチされているスクリプトでのみコールされます。
引数
型 |
変数名 |
内容 |
MonobitEngine.MonobitMessageInfo |
info |
誰がオブジェクトを作成したのか、いつ作成したのかの情報を提供します。 |
戻り値
記述例
// プレハブがインスタンス化されたときに、デバッグログを出力します。
public void OnMonobitInstantiate(MonobitEngine.MonobitMessageInfo info)
{
Debug.Log("OnMonobitInstantiate : creator name = " + info.sender.name);
}
OnMonobitCustomRoomParametersChanged メソッド▲
機能
ルーム内のパラメータが変更されたときにコールされます。
引数
型 |
変数名 |
内容 |
Hashtable |
parametersThatChanged |
変更されたルームパラメータ情報。 |
戻り値
記述例
// ルームのプロパティが変更されたときに、デバッグログを出力します。
public void OnMonobitCustomRoomParametersChanged(Hashtable peopertiesThatChanged)
{
Debug.Log("OnMonobitCustomRoomParametersChanged");
}
OnMonobitPlayerParametersChanged メソッド▲
機能
ルーム内に存在するプレイヤーパラメータが変更されたときにコールされます。
引数
型 |
変数名 |
内容 |
object[] |
playerAndUpdatedProps |
playerAndUpdatedProps[0] が MonobitPlayer 情報。
playerAndUpdatedProps[1] が、変更されたパラメータ情報(Hashtable) |
戻り値
記述例
// プレイヤーのプロパティが変更されたときに、デバッグログを出力します。
public void OnMonobitPlayerParametersChanged(object[] playerAndUpdateProps)
{
Debug.Log("OnMonobitPlayerParametersChanged");
}
OnMonobitSerializeView メソッド▲
機能
自身の所有する MonobitView オブジェクトの同期データの読み書きをするときにコールされます。
インスタンス化対象となるプレハブにアタッチされているスクリプトでのみコールされます。
引数
型 |
変数名 |
内容 |
MonobitEngine.MonobitStream |
stream |
MonobitTransformViewの送信データ、または受信データのいずれかを提供するパラメータ |
MonobitEngine.MonobitMessageInfo |
info |
特定のメッセージやRPCの送受信、または更新に関する
「送信者、対象オブジェクト、タイムスタンプ」などの情報を保有するパラメータ |
戻り値
記述例
// オブジェクトの同期データの読み書きをするときに、デバッグログを出力します。
public void OnMonobitSerializeView( MonobitEngine.MonobitStream stream, MonobitEngine.MonobitMessageInfo info )
{
Debug.Log("OnMonobitSerializeView");
if( stream.isWriting )
{
/*
* 同期データの書き込み
*/
}
else
{
/*
* 同期データの読み込み
*/
}
}
OnOwnershipRequest メソッド▲
機能
ルーム内の他の誰かが、自身の所有する MonobitView オブジェクトの所有権をリクエストしてきたときにコールされます。
インスタンス化対象となるプレハブにアタッチされているスクリプトでのみコールされます。
引数
型 |
変数名 |
内容 |
object[] |
viewAndPlayer |
viewAndPlayer[0] が、所有権の移譲を求めている MonobitView オブジェクト。
viewAndPlayer[1] が、リクエストをしている MonobitPlayer 情報。 |
戻り値
記述例
// オブジェクトの所有権の移譲を求めてきたときに、デバッグログを出力します。
public void OnOwnershipRequest( object[] viewAndPlayer )
{
Debug.Log("OnOwnershipRequest");
}
OnConnectionFail メソッド▲
機能
何らかの原因により、サーバ接続確立後に、接続失敗したときにコールされます。
現在のMUNでは空実装となっております。
引数
型 |
変数名 |
内容 |
MonobitEngine.DisconnectCause |
cause |
以下のいずれかの値を取ります。
ExceptionOnConnect |
接続を確立できませんでした。サーバが稼働していません。
|
DisconnectByServer |
サーバとの接続がタイムアウトしました。 |
MaxCcuReached |
同時接続数の最大値を超えています。 |
|
戻り値
記述例
// サーバへの接続に失敗したときに、デバッグログを出力します。
public void OnConnectionFail ( MonobitEngine.DisconnectCause cause )
{
Debug.Log("OnConnectionFail : cause = " + cause.ToString() );
}
OnOtherPlayerDisconnected メソッド▲
機能
ルーム内の自身以外の誰かが、ルームから退室したときにコールされます。
引数
型 |
変数名 |
内容 |
MonobitEngine.MonobitPlayer |
otherPlayer |
退室したプレイヤーの情報 |
戻り値
記述例
// ルーム内の誰かが退室したときに、デバッグログを出力します。
public void OnOtherPlayerDisconnected(MonobitEngine.MonobitPlayer otherPlayer)
{
Debug.Log("OnOtherPlayerDisconnected : playerName = " + otherPlayer.name );
}
OnLeftRoom メソッド▲
機能
自身がルームから退室したときにコールされます。
引数
戻り値
記述例
// ルームから退室したときに、デバッグログを出力します。
public void OnLeftRoom()
{
Debug.Log("OnLeftRoom");
}
OnLeftLobby メソッド▲
機能
自身がロビーから退室したときにコールされます。
引数
戻り値
記述例
// ロビーから退室したときに、デバッグログを出力します。
public void OnLeftLobby()
{
Debug.Log("OnLeftLobby");
}
OnDisconnectedFromServer メソッド▲
機能
サーバから回線を切断したときにコールされます。
引数
戻り値
記述例
// サーバから切断したときにデバッグログを出力します。
public void OnDisconnectedFromServer()
{
Debug.Log("OnDisconnectedFromServer");
}