結論
IsSharedModeMasterClientを意図的に他のプレイヤーに受け渡すことができません。今後に期待です。
やりかったこと
IsSharedModeMasterClientの権限が無いと、ルームのCloseができません。ルームに入室している特定のグループだけがCloseするようにしたかったので、該当グループでないユーザがIsSharedModeMasterClientの権限を持ってしまった場合(例えば該当グループでないユーザ以外が全員退室した場合)、その後どこかのタイミングで受け渡したかった。
プログラム的には
NetworkRunnerにはSetMasterClientというメソッドがあるので一見できそうなのですが、このメソッドを呼んでも設定変更されません。
networkRunner.SetMasterClient(playerRef);
その他
/// 確認用に出したログ、NetworkBehaviourを継承しているクラスで出力できます。
/// よくわからなくなった時に見てみると権限周りで足りないものがわかるかもしれません。
private void CheckPropertyValues()
{
Debug.Log($"HasInputAuthority = {HasInputAuthority}");
Debug.Log($"HasStateAuthority = {HasStateAuthority}");
Debug.Log($"Runner.IsClient = {Runner.IsClient}");
Debug.Log($"Runner.IsPlayer = {Runner.IsPlayer}");
Debug.Log($"Runner.IsServer = {Runner.IsServer}");
Debug.Log($"Runner.IsSharedModeMasterClient = {Runner.IsSharedModeMasterClient}");
Debug.Log($"Runner.IsResimulation = {Runner.IsResimulation}");
}