This document is about: FUSION 2-SHARED
SWITCH TO

네트워크 러너

개요

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 in the Hierarchy of Core Objects
NetworkRunner는 모든 연결, 매치메이킹, 메시징, 이벤트 콜백, 스냅샷 메모리 및 네트워크 객체 동기화를 관리합니다.

네트워크 연결

피어의 연결 및 전송 처리는 NetworkRunner에 의해 래핑 됩니다.
NetworkRunner는 매치메이킹 서버, 방 서버 및 게임 서버와의 연결을 처리합니다.

틱 관리

NetworkRunner는 언제 틱을 시뮬레이션해야 하는지 결정하는 책임이 있습니다.
매 Unity Update에서, NetworkRunner는 이전 틱 시뮬레이션 이후 경과된 시간에 따라 몇 개의 틱을 시뮬레이션해야 할지 결정합니다.

틱이 시뮬레이션되면, Fusion은 모든 FixedUpdateNetwork() 콜백을 호출합니다.

Back to top