공유 모드 마스터 클라이언트
개요
SharedModeMasterClient는 Shared Mode 세션에서 한 클라이언트에게 부여되는 역할입니다. 이 역할을 가진 플레이어는 다른 클라이언트가 접근할 수 없는 몇 가지 고유 권한을 가집니다.
할당
기본적으로 SharedModeMasterClient 역할은 공유 모드 세션을 생성한 플레이어에게 할당됩니다. 플레이어는 NetworkRunner.IsSharedModeMasterClient를 호출하여 자신이 SharedModeMasterClient인지 확인할 수 있습니다. 이 역할은 다음의 경우 재할당됩니다:
SharedModeMasterClient가 나가거나 연결이 끊어진 경우, 현재 룸에 있는 클라이언트 중 한 명에게 자동으로 새로운SharedModeMasterClient역할이 할당됩니다.SharedModeMasterClient가NetworkRunner.SetMasterClient(PlayerRef player)를 실행한 경우.
SharedModeMasterClient 권한
앞서 언급했듯이, SharedModeMasterClient는 몇 가지 고유 권한을 가지고 있습니다.
씬 관리
공유 모드에서, SharedModeMasterClient만 씬을 관리할 권한이 있습니다. 여기에는 NetworkRunner.LoadScene과 같은 씬 관리에 관련된 모든 메서드가 포함됩니다.
씬 객체에 대한 초기 상태 권한
새로운 씬이 로드되면, SharedModeMasterClient는 씬에 포함된 모든 NetworkObjects에 대한 StateAuthority를 갖게 됩니다.
마스터 클라이언트 객체 여부
NetworkObjects의 Shared Mode Settings에서 Is Master Client가 true로 설정된 경우, SharedModeMasterClient는 항상 이 NetworkObject에 대한 State Authority를 갖게 됩니다. 새로운 SharedModeMasterClient가 할당되면, 이 NetworkObject의 상태 권한은 새 SharedModeMasterClient로 이전됩니다.
상태 권한이 없는 오브젝트 제거
NetworkObject가 Shared Mode Settings에서 Allow State Authority Override를 활성화하고 Destroy When State Authority Leaves를 비활성화한 경우, 플레이어가 연결을 끊어도 해당 NetworkObject는 파괴되지 않습니다. 그러나 SharedModeMasterClient는 해당 오브젝트에 StateAuthority가 없어도 이 오브젝트를 제거할 수 있습니다.
