FusionStats
개요
Fusion Stats는 네트워킹 원격 측정을 모니터링하기 위한 UI 컴포넌트 집합으로 구성됩니다. FusionStats
컴포넌트는 원격 측정 UI 요소의 계층을 생성, 초기화 및 제어하기 위한 기본 컴포넌트입니다.
Fusion Stats는 빌드에서 통계를 화면 오버레이로 보거나 3D 공간의 객체에 부착할 수 있는 기본 UnityEngine.UI
컴포넌트를 사용합니다.
기본 사용법
씬에 FusionStats 추가
- 유니티 편집기 메뉴 실행:
Fusion > GameObject > Add Fusion Stats
; 또는 - 계층에서 우측 마우스 클릭, 또는 계층에서
GameObject
에서Fusion > Add Fusion Stats
선택.
- GameObject를 선택한 경우:
FusionStats
는 기본적으로StatsCanvasType.GameObject
으로 설정됩니다. 해당 객체에 연결된 3D 공간에서 렌더링 됩니다. - GameObject를 선택하지 않은 경우:
FusionStats
는 기본적으로StatsCanvasType.Overlay
로 설정되며, 화면 공간에 통계가 렌더링 됩니다.
또한 이 메뉴 옵션을 사용하면 FusionStatsBillboard
컴포넌트가 객체에 자동으로 추가됩니다. FusionStatsBillboard
컴포넌트는 FusionStats.CanvasType
이 GameObject
로 설정될 때 GameObject
를 카메라 쪽으로 자동으로 회전시킵니다.
런타임 기능
시뮬레이션이 실행되는 동안 몇 가지 추가 기능을 사용할 수 있습니다. 이 섹션에서는 런타임에 FusionGraph
에서 찾을 수 있는 다양한 "숨겨진" 기능을 제공합니다.
뷰 옵션
FusionGraph
의 제목을 클릭하면 해당 그래프에 대한 보기 옵션 드롭 다운 목록이 나타납니다(두 개 이상 사용 가능한 경우).
평균 옵션
런타임에 FusionGraph
의 값 필드를 클릭하면 현재 데이터 소스에 대해 사용 가능한 모든 평균 옵션이 사이클 됩니다.
- 초당 평균
- 틱당 평균
- 샘플당 평균
핑
NetworkRunner
이름의 통계 패널 맨 위를 클릭하면 계층의 FusionStats
컴포넌트가 핑됩니다. 현재 GameObject
가 선택되지 않은 경우, 이 작업은 인스펙터에서 FusionStats
컴포넌트도 선택합니다.
FusionStats 컴포넌트
FusionStats
는 모든 Fusion Stats의 기본 루트 컴포넌트입니다. 하위 캔버스 및 UI 컴포넌트를 생성하고 런타임에 이러한 원격 측정 컴포넌트를 NetworkRunner
및 NetworkObject
데이터 소스에 연결하는 작업을 관리합니다.
다시 그리기 간격
UI 업데이트가 이 값당 두 번 이상 발생하지 않도록 제한합니다. 이 값을 늘리면 성능이 향상됩니다.
레이아웃 섹션
레이아웃 컨트롤 - 일반적으로 FusionStats 캔버스의 레이아웃에 영향을 미칩니다.
캔버스 타입
2개의 캔버스 모드가 있습니다:
GameObject
는 3d 공간에서 캔버스를 렌더링 합니다.Overlay
는 스크린 공간에서 캔버스를 렌더링 합니다.
GameObject 사각형 / Overlay 사각형
이 두 개의 편집 가능한 사각형은 UI.Canvas
통계의 렌더링 위치를 정의하며, 특정한 면 또는 캔버스의 코너에 그래프가 렌더링하도록 합니다.
CanvasType
을 GameObject
로 설정하면 GameObjectRect
가 사용되며 통계가 연결된 객체의 중심에서 오프셋 할 수 있습니다.
CanvasType
을 Overlay
로 설정하면 OverlayRect
가 사용되며, 화면에서 통계를 렌더링 할 위치를 지정합니다. FusionGraph
컴포넌트는 필요에 따라 Rect 영역을 채우도록 확장됩니다.
Rect는 시뮬레이션된 캔버스 영역을 클릭하고 끌어서 인스펙터에서 그릴 수 있으며, 노란색 핸들을 잡고 모서리를 끌어서 수정할 수 있습니다.
모서리를 끌려면 Rect 드로어를 확장해야 합니다.
Fusion Graphs 레이아웃 섹션
레이아웃 컨트롤은 특히 FusionGraph
컴포넌트의 레이아웃(Fusion Stats 캔버스의 하단 섹션)에 영향을 미칩니다.
기본 레이아웃
모든 하위 FusionGraph
컴포넌트는 개별 설정이 자동으로 설정된 경우 이 Layout 설정을 사용합니다. 자동으로 설정하면 각 그래프의 현재 너비/높이를 기준으로 레이아웃이 선택됩니다.
텍스트 없음 오버랩
이 설정을 사용하면 그래프 UI에 Fusion Graph 레이아웃 옵션이 사용되지 않습니다. 텍스트가 그래프 셰이더(수직 원격 측정 막대)와 겹칩니다. 텍스트가 흐릿하게 표시되는 모든 사용 사례에 사용합니다. 일반적으로 이것은 VR과 같이 캔버스가 카메라를 향하도록 완벽하게 빌보드를 보게 되어 있지 않은 경우입니다.
그래프 칼럼 개수
그래프 칼럼 개수는FusionStats.GraphColumnCount
를 사용하여 수동으로 설정할 수 있습니다. FusionStats.GraphColumnCount
를 0으로 설정할 때, FusionStats.GraphMaxWidth
값은 캔버스의 폭이 값을 초과할 때 자동으로 새로운 칼럼을 생성하는데 사용됩니다.
그래프 최대 폭
FusionGraph
요소가 확장될 최대 너비입니다. 이 너비 이상으로 확장되면 필요에 따라 새 칼럼이 추가됩니다.
네트워크 객체 통계 섹션
루트 NetworkObject
컴포넌트와 관련된 옵션입니다.
이는 FusionStats
가 NetworkObject
로 GameObject에 추가된 경우에만 유효
객체 상태 사용 가능
루트 NetworkObject
컴포넌트에 대한 UI 요소 사용 및 원격 측정 처리를 활성화
객체 타이틀 높이
GameObject 이름에 대한 레이블 영역 높이
객체 Ids 높이
NetworkObject ID 및 플레이어 권한을 표시하는 섹션의 높이
객체 미터 높이
수평 미터 바 섹션의 높이
데이터 섹션
사용할 데이터 소스 및 표시할 원격 측정 옵션
러너
모든 원격 측정 데이터에는 NetworkRunner
연결이 필요합니다. 네트워크 러너가 시작될 때 이 정보를 자동으로 찾을 수 있습니다.
연결하기
Multi-Peer
모드일 경우 둘 이상의 러너가 있을 수 있으므로, 어떤 러너 유형을 찾을지 제어할 수 있습니다(Multi-Peer 모드일 경우 둘 이상의 러너가 있을 수 있음). SimulationModes
플래그는 FusionStats.EnforceSingle
와 함께 표시되며, 실행 중인 피어 수에 관계없이 이 FusionStats
의 인스턴스가 하나만 존재하도록 합니다.
포함된 통계
각 원격 측정 항목은 렌더링 된 FusionGraph
집합에서 포함하거나 제외할 수 있습니다. 사용 가능한 원격 측정 데이터는 엔진의 세 가지 파트에서 제공되며 그에 따라 그룹화됩니다.
Net Stats
: 왕복 시간(rtt) 및 수신/송신 데이터 총계와 같은 네트워크 전송 계층 통계.Sim Stats
:Simulation
및NetworkRunner
통계(예: 리시뮬레이션 수, 스냅샷 크기, 보간/예측 세부 사항).Obj Stats
:NetworkObject
특정 원격 측정(예: RPC 수 및 네트워크 상태 값에 사용되는 대역폭).
라이프 사이클 섹션
싱글톤 및 FusionStats
GameObject 인스턴스의 자체 파괴에 영향을 미치는 옵션
자동 파괴
true일 경우 연관된 NetworkRunner
의 연결이 끊어지면 FusionStats
GameObject가 삭제됩니다.
Enforce Single
true일 경우 동일한 FusionStats.GUID
를 가진 반복적인 NetworkStats
의 GameObject
인스턴스를 삭제합니다. 이것은 Multi-Peer 모드에서 각 피어마다 하나씩이 아니라 FusionStats
객체의 인스턴스가 하나만 존재해야 하는 경우에 유용합니다. 모니터링할 피어 유형을 제어하기 위한 FusionStats.ConnectTo
와 함께 조합하여 사용합니다.
GUID
Multi-Peer 모드에서 동일한 Stats 개체의 여러 인스턴스를 식별하기 위해 FusionStats.EnforceSingle
와 함께 사용합니다.