네트워크 러너
개요
NetworkRunner
는 Fusion의 중앙 유니티 컴포넌트로, 하나의 네트워크 피어를 나타냅니다. 모든 메시징, 매치메이킹, 연결, 스폰, 시뮬레이션 및 상태 복제는 이 컴포넌트에 의해 조정됩니다.
사용법
생성
Network Runner 게임 객체는 다음 세 가지 방법으로 생성할 수 있습니다:
- 런타임에 프리팹에서 인스턴스화
- 씬 객체로 로드
- 게임 객체에
NetworkRunner
컴포넌트를 추가하여 런타임에 동적으로 생성
시작 및 연결
한 번 생성되면, NetworkRunner
인스턴스는 매치메이킹에 연결하거나 방을 생성/참여할 수 있습니다.
룸 생성 또는 참여
NetworkRunner
인스턴스에서 StartGame()
을 호출하면 피어가 생성되며, StartGameArgs
인자에 지정된 대로 방에 참여하거나 방을 생성합니다.
그러나 싱글 플레이어 모드에서는 Photon 서버에 연결되지 않으며 방이 생성되지 않습니다.
중요: NetworkRunner
는 한 번만 사용할 수 있습니다. 한 번 게임 세션에서 연결이 끊어지거나 연결에 실패하면, 해당 NetworkRunner
는 파괴되고, 새로 NetworkRunner
인스턴스를 생성하여 새 게임 세션을 시작해야 합니다.
러너 지원 컴포넌트
시작 시, NetworkRunner
컴포넌트는 모든 자식 SimulationBehaviour
컴포넌트를 찾아 등록합니다.
이 컴포넌트들은 FixedUpdateNetwork()
및 Render()
콜백을 받습니다.
NetworkRunner
는 또한 INetworkRunnerCallbacks
인터페이스를 구현한 모든 자식 컴포넌트를 찾아 콜백을 등록합니다.
내장 Fusion 러너 컴포넌트
다음은 NetworkRunner
게임 객체에 추가할 수 있는 Fusion 컴포넌트로, 러너의 기능을 확장합니다.
RunnerAOIGizmos
- 관심 지역 기즈모를 활성화하려면 이 컴포넌트를 추가하세요.
사용자 정의 SimulationBehaviours 러너 컴포넌트 (Custom SimulationBehaviours Runner Components)
SimulationBehaviour
를 상속하거나 INetworkRunnerCallbacks
를 구현한(또는 둘 다) 컴포넌트를 네트워크 러너 게임 객체에 추가하여 자신만의 러너 지원 컴포넌트를 만들 수 있습니다.
이 컴포넌트들은 NetworkRunner.StartGame()
이 호출될 때 자동으로 NetworkRunner
인스턴스에 의해 발견되며, 관련된 콜백이 해당 상황에서 호출됩니다.
사용자 정의 INetworkRunnerCallbacks
시작 시, NetworkRunner
컴포넌트는 INetworkRunnerCallbacks
를 구현한 모든 자식 컴포넌트를 찾아 등록합니다. INetworkRunnerCallbacks API 참조.
참고: 일부 콜백은 실행 순서로 인해 적용되지 않을 수 있으며 호출되지 않을 수 있습니다. 예를 들어, OnPlayerJoined()
는 이미 참여한 플레이어에 대해서는 호출되지 않습니다.

네트워크 연결
피어의 연결 및 전송 처리는 NetworkRunner
에 의해 래핑 됩니다.
NetworkRunner
는 매치메이킹 서버, 방 서버 및 게임 서버와의 연결을 처리합니다.
틱 관리
NetworkRunner
는 언제 틱을 시뮬레이션해야 하는지 결정하는 책임이 있습니다.
매 Unity Update에서, NetworkRunner
는 이전 틱 시뮬레이션 이후 경과된 시간에 따라 몇 개의 틱을 시뮬레이션해야 할지 결정합니다.
틱이 시뮬레이션되면, Fusion은 모든 FixedUpdateNetwork()
콜백을 호출합니다.