ホストの移譲

目次

  概要
  注意事項
  MonobitEngine.MonobitNetwork.ChangeHost メソッド
  接続コールバック


概要

任意のユーザーにホストを移譲する

  原則的に、サーバから認定されるホストは、ルームの作成者が担当します。
  ホストが退室したり、通信途中で切断したり、アプリケーションを終了したりした場合、
  「ルーム内で最も古く入室したプレイヤー」に、自動的にホストが移譲されます。
  そのため、基本的にホストの移譲については考える必要はありません。

  ただし、「どうしてもホストを変更したい」ケースが発生する場合には、この機能をお使いください。


注意事項

自身がホストである必要はありません

  ホスト移譲要求は、ルームに所属する全てのクライアントからリクエストを送信することができ、かつ処理されます

  ホスト以外が「ホスト移譲」を実行しても、処理要求は無視されずにホストが切り替わります。
  運用の際にはみだりに変更できないよう、特定のクライアントでのみ実行可能にするなどの条件分岐を設けることが望ましいと思われます。


MonobitEngine.MonobitNetwork.ChangeHost メソッド

機能

  サーバに依頼して、別のプレイヤーにホストの権限を委譲します。

引数

変数名 内容
MonobitEngine.MonobitPlayer hostPlayer ホストの権限を委譲する、相手のプレイヤー情報

戻り値

内容
bool 成功したら true、失敗したら false を返します。

記述例

// ボタンの入力により、現在いる自分以外の誰かにホスト権限を移譲します。
class Foo : MonobitEngine.MonoBehaviour
{
    ...
    
    void OnGUI()
    {
        ...
        
        if( MonobitEngine.MonobitNetwork.isHost && MonobitEngine.MonobitNetwork.isHost && MonobitEngine.MonobitNetwork.otherPlayersList.Length > 0 )
        {
            if( GUILayout.Button( "任意プレイヤーにホストを移譲" ) )
            {
                int index = UnityEngine.Random.Range( 0, MonobitEngine.MonobitNetwork.otherPlayersList.Length - 1 );
                MonobitEngine.MonobitNetwork.ChangeHost( MonobitEngine.MonobitNetwork.otherPlayersList[index] );
            }
        }
        
        ...
    }
    
    ...
}


接続コールバック

ルームホストの権限が(自身を含めた)ルーム内の誰かに移譲された際にコールバックされるメソッド

  このメソッドの実行結果に応じて、以下の接続コールバックが呼び出されます。
  (接続コールバックについては こちら を参照してください。)
OnHostChanged メソッド 現在のホストが移譲され、新規ホストに切り替わったときにコールされます。