共有モードのマスタークライアント
概要
共有モードのセッションでは、1つのクライアントにSharedModeMasterClientの役が与えられます。この役が与えられたプレイヤーは、他のクライアントはアクセスできないいくつかの特権を持ちます。
割り当て
デフォルトでは、共有モードのセッションを作成したプレイヤーにSharedModeMasterClientの役が割り当てられます。プレイヤーはNetworkRunner.IsSharedModeMasterClientを呼び出すだけで、自分自身がSharedModeMasterClientかどうかを確認できます。この役は以下のようなケースで再割り当てが行われます。
SharedModeMasterClientが退出/切断する:ルーム内のクライアントの一人に、新しいSharedModeMasterClientが自動的に割り当てられます。SharedModeMasterClientがNetworkRunner.SetMasterClient(PlayerRef player)を実行する。
SharedModeMasterClientの特権
先ほど言ったように、SharedModeMasterClientはいくつかの特権を持ちます。
シーン管理
共有モードでは、SharedModeMasterClientのみがシーンを管理する権限を持ちます。これはNetworkRunner.LoadSceneなどのシーン管理に関するあらゆるメソッドを含みます。
シーンオブジェクトに対する初期の状態権限
新しいシーンがロードされた時、SharedModeMasterClientはシーンにベイクされたすべてのネットワークオブジェクトに対する状態権限を持ちます。
マスタークライアントオブジェクト
ネットワークオブジェクトのShared Mode SettingsでIs Master Clientをtrueに設定すると、SharedModeMasterClientが常にそのネットワークオブジェクトの状態権限を持ちます。新しいSharedModeMasterClientが割り当てられると、ネットワークオブジェクトの状態権限は新しいSharedModeMasterClientに移譲されます。
状態権限を持たないオブジェクトのデスポーン
ネットワークオブジェクトのShared Mode Settingsから、Allow State Authority Overrideを有効にしてDestroy When State Authority Leavesを無効にすると、プレイヤーが切断してもネットワークオブジェクトは破棄されなくなります。ただし、SharedModeMasterClientはこのオブジェクトを(状態権限を持たないにもかかわらず)デスポーンできます。
