2024. 8. 28. 20:33ㆍApplication & Note/Unity Engine
Network Property?
- Network Obejct에 NetworkTransform Component를 추가 했을 경우 Object의 Tranform이 동기화 되듯이, 스크립트의 변수와 같은 다른 상태 또한 동기화 할 수 있는 방법이 있다. 위에 [Networked]라는 Property를 붙여주는 방식이다.
- 이때 중요하게 다뤄지는 것이 StateAuthority인데 (Client가 StateAuthority가 없는 Object의 프로퍼티 변경시 나중에 묵살되버릴 수 있음), 이것이 무엇인고 하니...
StateAuthority?
- StateAuthority는 네트워크 객체의 상태를 제어하는 권한을 의미한다. 이 권한을 가진 Entity만이 특정 Object의 상태를 업데이트 하고 유지할 수 있으며, 다른 클라이언트들과 동기화 되게 한다.
- 대게 Hosting하는 쪽에서 모든 중요한 객체에 대한 StateAuthority를 가지는 편이다.
- Photon Fusion에서는 RPC를 StateAuthority를 가진 엔티티에게 날려서 특정 행동이나 상태 변경을 실행 할 수 있다.
- 위에서 보이는 바와 같이, OnChangedRender()를 이용해서 특정 Networked Property가 업데이트 될 떄 마다 함수를 소환시켜서 Local Propery를 Update해주는 것이 가능하다. 이는 매우 유용하게 쓰이지 아니하겠는가?
- 그러나 함정은 다른 클라이언트에서는 Object의 StateAuthority도 다를 것이므로 정작 다른 클라에서는 적용되지 않는 대참사가 발생하는데, 이를 위한 솔루션은 바로 다음 편에서 다룰 RPC라는 친구이다.
'Application & Note > Unity Engine' 카테고리의 다른 글
[Unity] Photon Fusion (6) - Network Rigidbody, Collision (0) | 2024.08.28 |
---|---|
[Unity] Photon Fusion (5) - RPC (0) | 2024.08.28 |
[Unity] Photon Fusion을 이용한 멀티게임 개발(3) (0) | 2024.08.28 |
[Unity] Photon Fusion을 이용한 멀티게임 개발(2) (0) | 2024.08.28 |
[Unity] Photon Fusion을 이용한 멀티 개발(1) (1) | 2024.08.21 |