새소식

유니티/Fusion

flag |= NetworkObjectFlags.MasterClientObject;

  • -

 

private void Awake() {
    GetComponent<NetworkObject>().Flags |= NetworkObjectFlags.MasterClientObject;
}

 

포톤 퓨전에서 해당 내용은 NetworkObject의 관리자를 MasterClient로 설정한다는 뜻이다.

 

네트워크는 각각의 씬에서 네트워크상 생성된 오브젝트 또는 서로 동기화되는 오브젝트를 제외하면 각각 동작하게 되는데, 해당 플래그를 세우면

Shared모드에서는 "처음 서버를 개설한 플레이어"가 해당 객체에 대한 네트워크상의 권한을 가진다.

 

각각의 클라이언트에서 동작은 할지 몰라도 아래와 같은 경우가 있다면,

마스터 클라이언트[ "처음 서버를 개설한 플레이어"]에서만 해당 구문이 실행이 되는 것이다.

만약 해당 플레이어가 나가 권한의 주체가 변경된다면, 해당 플레이어가 아래의 구문을 실행시킬 수 있다.

 if (Object.HasStateAuthority)
	{
		//마스터 클라이언트일 경우에만 수행한다.
		Phase = GamePhase.Starting;
		Timer = TickTimer.CreateFromSeconds(Runner, _startDelay);
	}

 

'유니티 > Fusion' 카테고리의 다른 글

Fusion 기본 정보  (1) 2024.06.06
[Fusion] Asteroids.SharedSimple 뜯어보기  (0) 2024.06.06
photon fusion tutorial #3  (1) 2024.06.04
Photon Fusion Tutorial #2  (0) 2024.06.04
Fusion Shared Tutorial #1  (0) 2024.06.04
Contents

아핫

땡큐하다