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

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()가 실행된 이후 가능하다.
- Server Modes (Host, Dedicated, Single)에서만 적용된다.
- Network Object가 해당 플레이어의 입력을 받을 수 있는지에 대한 권한이다.