[Photon Server] 1-3. Fusion: Network Object

scarleter99·2024년 2월 23일

[Unity] Photon Server

목록 보기
3/6
post-thumbnail

Network Object

  • 단일 네트워크 엔티티를 상징하는 컴포넌트이다.
  • Spawned() 또는 Scene Objects 로딩 중 생성할 수 있다.

NetworkId

  • 서버에게 Room 안에서의 식별자인 NetworkId를 할당받는다.
  • NetworkRunner.TryFindObject()로 NetworkId를 불러올 수 있다.

Spawning

  • Runner.Spawn()
    • 해당 NetworkObject를 가진 GameObject를 Spawn하고, 네트워크 상에서 복제한다.
    • Host Mode에서는 서버만 실행할 수 있다.
    • Shared Mode에서는 State Authority를 가진 Client만 실행할 수 있다.
  • Network Object를 포함한 Scene을 로드한다.

Prefab

  • Spawn할 프리팹을 미리 Fusion에 등록해야 한다.
  • Fusion 툴셋이 자동으로 프리팹을 감지하여 등록한다.
    • Inspector > NetworkProjectConfig > Rebuild Object Table에서 수동으로도 등록가능하다.

State Authority

  • Runner.StateAuthority는 PlayerRef에 따른 Network Object 접근 권한이다.
  • PlayerRef.None은 State Authority가 서버 Peer에만 있다는 의미이다.
  • Server Modes (Host/Dedicated/Single)
    • State Authority 항상 PlayerRef.None이다.
  • Shared Server Mode
    • State Authority 항상 해당 PlayerRef이다.
    • State Authority를 다른 플레이어에게 할당할 수 없다.
    • 다른 플레이어의 State Authority를 Object.RequestStateAuthority()로 얻을 수 있다.
      • NetworkObject.AllowStateAuthorityOverride가 true거나, Object.ReleaseStateAuthority()가 실행된 이후 가능하다.

Input Authority

  • Server Modes (Host, Dedicated, Single)에서만 적용된다.
  • Network Object가 해당 플레이어의 입력을 받을 수 있는지에 대한 권한이다.

0개의 댓글