NetworkRunner, NetworkObject, NetworkBehaviour 간 관계 - cheona-thousand-man/Unity-myBasics-Wiki GitHub Wiki

클래스 간단 정리

NetworkRunner

Fusion 네트워크의 중심 네트워크 세션을 관리 / 클라이언트와 서버 간의 통신을 처리 / 네트워크 게임 로직을 실행하는 주요 엔진 역할

  1. 게임 세션 관리 게임 세션을 시작하고, 유지하며, 종료합니다.
  2. 스폰 및 디스폰 NetworkObject의 인스턴스를 생성하고 제거합니다.
  3. 네트워크 동기화 네트워크 상태를 동기화하고, 클라이언트와 서버 간의 데이터를 주고받습니다.
  4. 입력 처리 플레이어 입력을 수집하고, 이를 네트워크를 통해 전송합니다.

NetworkObject

네트워크 상에서 고유하게 식별되는 객체 Fusion 네트워크에서 객체의 상태를 동기화하는 데 사용

  1. 고유 식별자 각 NetworkObject는 네트워크 상에서 고유하게 식별됩니다.
  2. 상태 동기화 객체의 상태가 네트워크를 통해 동기화됩니다.
  3. 상태 권한 및 입력 권한 객체의 상태와 입력 권한을 관리합니다.

NetworkBehaviour

NetworkObject에 연결된 스크립트로, 네트워크 상에서 객체의 동작을 정의 Unity의 MonoBehaviour와 유사하지만, 네트워크와 관련된 추가 기능을 제공

  1. 네트워크 동작 정의 네트워크 상에서 객체가 어떻게 동작하는지 정의합니다.
  2. 네트워크 이벤트 처리 네트워크 이벤트(예: 객체 스폰, 디스폰, 상태 변경)를 처리합니다.
  3. Networked Properties 네트워크를 통해 동기화되는 속성을 정의합니다.

클래스 간 관계

NetworkRunner와 NetworkObject

  • NetworkRunner는,
    • 네트워크 세션을 관리
    • NetworkObject를 스폰하거나 디스폰
    • NetworkRunner는 NetworkObject의 상태와 입력을 동기화

NetworkObject와 NetworkBehaviour

  • NetworkObject는, 네트워크 상에서 객체 상태 동기화
  • NetworkBehaviour는,
    • 객체의 동작을 정의
    • NetworkObject에 연결
    • 네트워크 이벤트와 상태 변경을 처리

NetworkRunner와 NetworkBehaviour

  • NetworkObject를 통해 간접적으로 상호작용
    • NetworkRunner는 네트워크 상의 상태와 입력을 동기화
    • NetworkBehaviour가 정의한 동작 수행 처