This document is about: FUSION 2
SWITCH TO

FusionStats

개요

FusionStats는 네트워크 텔레메트리를 모니터링하기 위한 UI 컴포넌트 집합입니다. FusionStats 컴포넌트는 텔레메트리 UI 요소의 계층을 생성, 초기화, 제어하는 주된 컴포넌트입니다.

FusionStats는 기본 UnityEngine.UI 컴포넌트를 사용하여, 빌드 된 환경에서도 화면 오버레이 또는 3D 공간의 오브젝트에 부착된 형태로 통계를 표시할 수 있습니다.

기본 사용법

씬에 FusionStats를 추가하려면:

  • 유니티 에디터 메뉴에서 Fusion > GameObject > Add Fusion Stats 실행, 또는
  • Hierarchy에서 빈 공간 혹은 GameObject를 우클릭하여 Fusion > Add Fusion Stats 선택
Add Fusion Stats
GameObject에 FusionStats 추가
  • GameObject를 선택한 경우: FusionStats는 기본적으로 StatsCanvasType.GameObject로 설정되며, 3D 공간에서 해당 오브젝트에 통계를 렌더링 합니다.
  • GameObject를 선택하지 않은 경우: StatsCanvasType.Overlay로 설정되어, 화면 상단 오버레이 형태로 통계를 렌더링 합니다.

이 메뉴 옵션은 자동으로 FusionStatsBillboard 컴포넌트를 추가하여, CanvasTypeGameObject일 때 해당 오브젝트가 카메라를 바라보도록 회전시킵니다.

실행 중 기능들

시뮬레이션이 실행되는 동안 사용할 수 있는 여러 기능이 있으며, 이 섹션에서는 런타임 중 FusionGraph에서 사용할 수 있는 다양한 숨겨진 기능들을 소개합니다.

보기 옵션

FusionGraph의 제목을 클릭하면 해당 그래프의 보기 옵션 드롭다운이 표시됩니다 (여러 옵션이 존재할 경우).

Selecting alternate graph methods.
대체 그래프 방식 선택하기

평균 계산 방식

런타임 중 FusionGraph의 값 필드를 클릭하면 평균 계산 방식이 순환됩니다:

  • 초당 평균 (Average per Second)
  • 틱당 평균 (Average per Tick)
  • 샘플당 평균 (Average per Sample)
Selecting alternate averaging options.
평균 옵션 변경하기

핑 기능

통계 패널의 가장 상단, NetworkRunner 이름을 클릭하면 해당 FusionStats 컴포넌트가 Hierarchy에서 강조(ping) 됩니다. GameObject가 선택되어 있지 않다면, 자동으로 인스펙터에서 해당 객체를 선택합니다.

Pinging FusionStats game object.
FusionStats GameObject 핑하기

FusionStats 컴포넌트

FusionStats는 모든 Fusion 통계 기능의 루트 컴포넌트입니다. 이 컴포넌트는 자식 캔버스 및 UI 요소들을 생성하며, 런타임에 NetworkRunnerNetworkObject의 데이터 소스와 연결을 관리합니다.

리드로우 간격

UI 갱신이 이 값보다 자주 발생하지 않도록 제한합니다. 값을 증가시키면 성능이 향상됩니다.

레이아웃 섹션

FusionStats 캔버스의 전체적인 레이아웃을 제어하는 옵션입니다.

캔버스 타입

  • GameObject: 3D 공간에서 렌더링
  • Overlay: 화면 오버레이 방식으로 렌더링

GameObject Rect / Overlay Rect

이 두 가지 Rect 값은 통계 요소가 UI.Canvas 상에서 어느 위치에 렌더링 될지를 결정합니다.

  • GameObjectRect: CanvasType이 GameObject일 때, 기준 오브젝트 중심에서 얼마나 떨어져 렌더링 할지 지정
  • OverlayRect: CanvasType이 Overlay일 때, 화면의 어느 부분에 렌더링 할지 지정

이 Rect 값은 인스펙터 상에서 드래그하여 직접 조정하거나, 노란색 핸들을 이용해 모서리를 끌어서 조정할 수 있습니다.

Collapsed GameObject Rect
우측 상단 정렬된 GameObjectRect (접힌 상태)
GameObject Rect
확장된 GameObjectRect 예시
GameObject Stats
오른쪽 상단에 정렬된 통계 그래프

Fusion 그래프 레이아웃 섹션

FusionStats 캔버스 하단에 위치한 FusionGraph 요소들의 레이아웃을 제어합니다.

기본 레이아웃

개별 FusionGraph의 설정이 Auto일 경우, 이 기본 레이아웃 설정이 적용됩니다.

텍스트 겹침 방지

UI 텍스트가 그래프 셰이더(세로 막대)와 겹치지 않도록 강제합니다. 특히 VR 등에서 캔버스가 카메라를 완전히 정면으로 바라보지 않는 경우 유용합니다.

그래프 열 수

그래프 열의 개수를 수동으로 설정할 수 있습니다. 0으로 설정하면 GraphMaxWidth 값을 기준으로 자동 열 배치가 이루어집니다.

그래프 최대 너비

FusionGraph 요소가 확장될 수 있는 최대 너비입니다. 이를 초과하면 자동으로 새 열이 생성됩니다.

네트워크 오브젝트 통계 섹션

루트 NetworkObject 컴포넌트에 대한 통계 옵션입니다. 해당 오브젝트에 FusionStats가 추가되어 있을 때만 유효합니다.

오브젝트 통계 활성화

해당 NetworkObject에 대한 UI 및 텔레메트리 수집을 활성화합니다.

오브젝트 제목 높이 / ID 영역 높이 / 미터 바 높이

각 UI 요소(오브젝트 이름 라벨, ID 및 권한 정보, 수평 미터 바)의 높이를 설정합니다.

데이터 섹션

어떤 데이터 소스를 사용할지, 어떤 텔레메트리를 시각화할지 지정합니다.

Runner

모든 텔레메트리 데이터는 NetworkRunner와의 연결이 필요합니다. 런타임 중 자동으로 탐지됩니다.

연결 대상 지정

멀티 피어 환경에서 여러 NetworkRunner가 존재할 수 있으므로, 연결 대상이 될 피어 타입을 제어할 수 있습니다. SimulationModes 플래그와 EnforceSingle 설정을 함께 사용하면, 실행 중인 피어 수와 관계없이 단 하나의 FusionStats 인스턴스만 유지할 수 있습니다.

포함할 통계 항목들

시각화에 포함할 텔레메트리 항목을 설정합니다. 항목은 엔진의 3가지 주요 구성 요소에서 가져옵니다:

  • Net Stats: 네트워크 전송 계층 (예: RTT, 송수신 데이터양)
  • Sim Stats: 시뮬레이션 관련 (예: 리시뮬레이션 횟수, 스냅샷 크기 등)
  • Obj Stats: NetworkObject 단위의 상태 변경, RPC 호출 수 등

생명 주기 섹션

FusionStats GameObject 인스턴스의 생성/파괴 관련 동작을 제어합니다.

자동 파괴

NetworkRunner 연결이 끊기면 이 FusionStats GameObject를 자동으로 파괴합니다.

단일 인스턴스 강제

FusionStats.GUID가 동일한 인스턴스를 하나만 유지하고, 나머지는 제거합니다. 멀티 피어 모드에서 유용합니다. ConnectTo 설정과 함께 사용하면 특정 피어만 감시하도록 제어할 수 있습니다.

GUID

멀티 피어 모드에서 여러 FusionStats 인스턴스를 구분하기 위한 고유 식별자입니다.

Back to top