This document is about: FUSION 2-SHARED
SWITCH TO

네트워크 동작

개요

NetworkBehaviour는 Unity의 MonoBehaviour 클래스를 상속받고 확장하여 다음을 포함합니다:

  • Runner 속성으로 관련된 NetworkRunner에 대한 참조.
  • Object 속성으로 관련된 NetworkObject에 대한 참조.
  • 네트워크 속성을 처리하는 기능.
  • 원격 프로시저 호출(을 처리하는 기능.
  • Spawned(), Despawned(NetworkRunner runner, bool hasState), FixedUpdateNetwork(), Render()에 대한 가상 이벤트 콜백.
  • 흐름 제어를 위한 권한 처리. HasStateAuthority, HasInputAuthority, IsProxy.

NetworkBehaviour 컴포넌트는 네트워크 객체와 그 자식 변환에 여러 개 추가할 수 있습니다.
NetworkBehaviour 인스턴스는 네트워크 객체의 상태(Networked Properties)와 시뮬레이션(FixedUpdateNetwork())의 일부를 나타냅니다.

NetworkBehaviourId

첨부된 네트워크 객체의 각 NetworkBehaviour 컴포넌트는 고유한 네트워크 식별자를 가집니다.
이 식별자는 네트워크 속성(Networked Property)이나 원격 프로시저 호출(Remote Procedure Call)을 통해 NetworkBehaviour를 참조하는 데 사용될 수 있습니다. 고급 네트워크 속성을 참조하세요.

네트워크 속성 (상태)

네트워크 속성NetworkBehaviour에서 [Networked] 특성으로 정의된 속성입니다.
이 속성들은 네트워크 객체의 상태를 나타내며, 그 값은 상태 권한을 가진 피어에서 다른 관심 있는 피어로 복제됩니다.
서버 모드에서는 서버가 항상 상태 권한을 가집니다. 공유 모드에서는 플레이어가 상태 권한을 가집니다.

이 속성들은 구현 없이 자동 구현된 속성으로 정의되며(빈 { get; set; } 형태로만 정의됨),
NetworkBehaviour에서 Spawned()가 호출될 때까지 네트워크 속성에 접근할 수 없습니다.

이벤트 함수

NetworkBehaviour는 여러 개의 가상 생애 주기 이벤트 함수를 제공하며, 이들은 모두 구현을 추가하기 위해 오버라이드 할 수 있습니다.

함수 설명
FixedUpdateNetwork() Fusion의 고정 시간 간격 콜백. 시뮬레이션 틱 당 한 번 호출됩니다. 핵심 게임 로직의 시뮬레이션에 사용됩니다.
Unity의 `FixedUpdate()` 대신 사용하세요.
Spawned() `NetworkRunner`에 네트워크 객체가 연결된 후 호출됩니다. 네트워크 객체가 초기화된 후 호출되며, 네트워크 속성과 RPCs를 사용할 수 있게 됩니다.
Unity의 `Start()` 대신 사용하세요.
Despawned(NetworkRunner runner, bool hasState) 네트워크 객체가 제거되기 전에 호출됩니다.
Unity의 `OnDestroy()` 대신 사용하세요.
---
`NetworkRunner runner`: 이 네트워크 객체가 속해 있던 `NetworkRunner`입니다.
`bool hasState`: 행동의 상태가 여전히 접근 가능한지 여부입니다.
Render() 시뮬레이션 후 프레임 렌더링 콜백. 모든 시뮬레이션 단계(`FixedUpdateNetwork`)가 끝난 후 실행됩니다.
Unity의 `Update()` 대신 사용하세요.

FixedUpdateNetwork() (시뮬레이션)

FixedUpdateNetwork()는 사용자 정의 시뮬레이션 코드가 구현되는 곳입니다. 여기에는 플레이어 입력을 사용하여 현재 상태를 변경하는 코드가 추가됩니다. 만약 NetworkObject.IsInSimulationtrue라면, FixedUpdateNetwork()는 해당 객체의 모든 NetworkBehaviour에서 매 틱마다 호출됩니다. 모든 FixedUpdateNetwork() 메서드가 호출된 후, 모든 NetworkBehaviour의 결과 상태는 캡처되어 해당 틱의 객체 스냅샷이 됩니다.

Back to top