네트워크 프로젝트 설정
개요
Network Project Config
는 Photon Fusion 프로젝트에 영향을 미치는 다양한 정보와 매개변수를 포함하는 에셋으로 다음을 포함합니다:
- 버전;
- 피어 모드;
- 기본 플레이어 수;
- 네트워크 조건 테스트;
- 암호화;
- 프리팹 검사.
이 에셋은 Assets/Photon/Fusion/Resources/NetworkProject.Config.fusion
에 위치합니다.
유니티 편집기 상단 메뉴에서 Tools > Fusion > NetworkProjectConfig
를 선택하여 액세스할 수도 있습니다.
이 에셋에 변경 사항이 있을 경우, Apply 버튼을 클릭하거나 저장 메시지가 표시되면 확인하여 변경 사항을 적용하세요.

Fusion 버전
첫 번째 섹션은 현재 사용 중인 Fusion 버전을 표시합니다.
드롭 다운을 확장하면 Fusion에서 사용되는 각 동적 링크 라이브러리(DLL
)에 대한 자세한 정보를 확인할 수 있습니다.
기타
이 섹션은 Fusion 프로젝트와 관련된 기타 매개변수를 다룹니다.
Enqueue Incomplete Synchronous Spawns
: 활성화되면 동기화되지 않은 불완전 스폰(Addressables 등)이 예외를 발생시키는 대신 대기열에 추가됩니다.
이 경우Fusion.NetworkSpawnStatus.Queued
를 반환하고, 객체 스폰 시도가 다음 프레임에 발생합니다.
Fusion 1.x에서 전환할 때 유용할 수 있습니다.Invoke Render In Batch Mode
: 활성화되면Fusion.SimulationBehaviour.Render
콜백이 배치 모드로 게임을 실행할 때 호출됩니다.
배치 모드는 유니티 빌드 실행 파일에 전달할 수 있는-batchmode
매개변수를 참조합니다.
비활성화하면 헤드리스 서버를 사용하는 게임에서 유용할 수 있습니다. Unity의 배치 모드에 대해 자세히 알아보기.Network Id Is Object Name
: 선택 시 새로 스폰 된 객체의 이름에 네트워크 ID가 추가됩니다. 예:[Network Id] Original Object Name
.
네트워크
Connection Timeout
: 업데이트가 수신되지 않을 경우, 연결이 끊어지기 전까지의 시간(초 단위)입니다.
서버는 해당 클라이언트로부터 업데이트를 받지 못하면 클라이언트 연결을 끊고, 클라이언트는 서버로부터 업데이트를 받지 못하면 서버 연결을 끊습니다.Connecting Shutdown Time
: 연결 상태가 Shutdown으로 변경된 후, 연결 및 관련 참조가 해제되기까지의 시간(초 단위)입니다.Reliable Data Transfer Modes
: 신뢰할 수 있는 데이터 전송 모드를 결정합니다.Client to Server
: 클라이언트에서 서버로 데이터를 신뢰성 있게 전송할 수 있도록 허용합니다.Client to Client With Server Proxy
: 서버를 프록시로 사용하여 클라이언트 간 데이터를 신뢰성 있게 전송할 수 있도록 허용합니다.
암호화
이 토글은 이 Fusion 프로젝트에서 Encryption
을 활성화하거나 비활성화할지 설정합니다.
참고로, 이를 활성화한 경우 Photon App Settings
에서 프로젝트의 Encryption Mode
를 업데이트해야 합니다.
암호화에 대해 자세히 알아보기.
네트워크 조건
네트워크 조건을 사용하면 지연 시간 및 손실과 같은 다양한 네트워크 조건을 시뮬레이션하고 테스트할 수 있습니다.
Enabled
: 활성화되면 추가 옵션이 표시됩니다.Delay Shape
: 지연 변동의 패턴을 설정합니다:Noise
;Sine
;Square
;Triangle
;Saw
;Reverse Saw
.
Delay Min
: 최소 지연 시간(초 단위), 0에서 0.5 사이의 값.Delay Max
: 최대 지연 시간(초 단위), 0에서 0.5 사이의 값.Delay Period
:Delay Min
과Delay Max
사이에서 지연이 진동하는 속도(초 단위).Delay Threshold
: 진동이 이 값(0에서 1 사이의 값) 아래로 떨어질 경우, 지연이Delay Min
으로 설정됩니다.Additional Jitter
: 진동이 다음 지연 값을 결정한 후, 0에서 지정된 값(초 단위) 사이의 임의의 값이 지연에 추가됩니다.Loss Chance Shape
: 손실 확률 변동의 패턴을 설정합니다. 선택지는Delay Shape
와 동일합니다.Loss Chance Min
: 손실이 발생할 최소 확률(0%~100%).Loss Chance Max
: 손실이 발생할 최대 확률(0%~100%).Loss Chance Threshold
: 진동이 이 값(0~1 범위) 아래로 떨어지면 손실 확률이Loss Chance Min
으로 설정됩니다.Loss Chance Period
:Loss Chance Min
과Loss Chance Max
사이에서 손실 확률이 진동하는 속도(초 단위).Additional Loss
: 진동이 다음 손실 확률 값을 결정한 후, 추가적으로 0에서 이 값(정규화된 비율) 사이의 임의 값을 손실 확률에 더합니다.
손실은 거의 동일한 설정을 가지며, 시간(초 단위)이 아니라 퍼센트(0%~100%)로 값을 결정합니다. 이는 손실이 어떻게 시뮬레이션되는지를 나타냅니다.
힙
Fusion에서 사용할 사전 할당 메모리 양을 정의할 수 있습니다. 이를 통해 메모리 관리가 최적화되고 효율성이 향상됩니다.
Page Shift
: 각힙 페이지
의 크기를 결정하며, 메모리 할당의 세분화 수준에 영향을 미칩니다.
1 KB에서 256 KB까지 2의 제곱 값으로 설정할 수 있습니다.
값이 낮을수록 작은 메모리 할당이 가능하며, 값이 높을수록 큰 메모리 할당이 가능합니다.Page Count
: 힙에 대해 처음 할당된 페이지 수를 지정합니다.
16에서 4096까지 설정할 수 있으며, 이는 초기 메모리 할당량에 영향을 미칩니다.
위버 설정
Fusion IL Weaver 설정으로, 저수준 네트워크 코드를 생성하고 이를 Assembly-CSharp.dll
에 삽입합니다.
Assemblies to Weave
: 처리될 어셈블리 목록. 대소문자를 구분하지 않습니다. 기본적으로 다음 항목이 포함됩니다:Fusion.Unity
;Assemble-CSharp
;Assembly-CSharp-firstpass
;Fusion.Addons.Physics
(Fusion의 물리 시스템을 사용하는 경우).
Use Serialized Dictionary
: 선택 시, 네트워크 속성의 초기 값을 저장하는 데Fusion.SerializeableDictionary
가 사용됩니다.
비활성화하면System.Generic.Dictionary
가 사용되지만, 이 타입은 Unity 직렬화가 불가능하며, Odin과 같은 커스텀 직렬화기가 필요할 수 있습니다.Null Checks for Networked Properties
: 설정 시, 네트워크 속성을 가진Fusion.NetworkBehaviour
에 연관된Fusion.NetworkObject
가 연결되어 있는지 확인합니다.Check Rpc Attribute Usage
: 설정 시,Fusion.RpcAttribute
가 지원되지 않는 타입에서 사용되는지 확인합니다.
예:Fusion.RpcAttribute
가Unity.MonoBehaviour
메서드에 추가된 경우 경고가 표시됩니다.
RPC는Fusion.NetworkBehaviour
및Fusion.SimulatedBehaviours
에서만 사용 가능합니다.
RPC 규칙에 대해 자세히 알아보기.Check Networked Properties Being Empty
: 설정 시, 사용자가Fusion.NetworkedAttribute
로 부적절하게 속성을 정의하려고 할 때 경고를 표시합니다.
해당 속성의 Getter와 Setter는 아래 예시와 같이 비워둬야 합니다:
C#
[Networked]
public int NetworkedProperty {get; set;}
네트워크 속성을 올바르게 설정하는 방법 자세히 알아보기
프리팹
프리팹이 언로드되는 방식을 관리합니다.
Unload Prefab On Releasing Last Instance
: 마지막 인스턴스가 해제될 때 프리팹을 언로드합니다.Unload Prefabs On Shutdown
: 셧다운 시 모든 프리팹을 언로드합니다.
필요하지 않은 프리팹을 언로드하면 메모리 사용량을 줄일 수 있지만, 다시 필요할 경우 로드해야 합니다.
자동 생성
자동으로 생성된 정보를 표시합니다.
Show Network Prefab Inspector
: 프로젝트에서Fusion.NetworkObject
컴포넌트를 포함하고Fusion.NetworkObject.IsSpawnable
이 활성화된 프리팹을 검사하는 창을 엽니다.Prefabs
: 위에서 언급한 버튼 아래에는 프로젝트에서NetworkObject
프리팹으로 나열된 각 프리팹의 드롭 다운 목록이 표시됩니다.
사용자가 직접 이 목록을 업데이트할 수는 없지만, 런타임에 추가 프리팹을Fusion.NetworkPrefabTable.TryAddSource
로 등록할 수 있습니다.Behaviour Meta
: 프로젝트의 모든Fusion.SimulationBehaviours
에 대한 실행 순서와 같은 메타 정보를 포함하는 자동 생성 목록.
네트워크 프리팹 인스펙터
위에서 언급한 Network Prefabs Inspector
는 Fusion.NetworkObject
컴포넌트를 포함하고 Fusion.NetworkObject.IsSpawnable
이 활성화된 프리팹을 자세히 검사할 수 있습니다.

이 창의 메인 툴바는 다음과 같은 기능을 제공합니다:
Refresh
: 새로 생성된 프리팹이 있을 경우 목록을 새로고침하고 업데이트합니다.Sync Selection
: 활성화 시, Unity는 창에서 강조 표시된 프리팹 에셋을 선택합니다.Loaded Only
: 활성화 시, 로드된 프리팹만 표시됩니다.
각 행은 다른 프리팹을 나타내며, 각 열은 다음을 의미합니다:
State
: 프리팹이 현재 로드되었는지 여부를 표시합니다.Type
: 프리팹이 로드되는 방식을 나타냅니다.R
:Resources
폴더에 배치된 프리팹.SL
:Resources
폴더 외부에 배치된 정적 프리팹.A
:Addressable
로 로드된 프리팹.
PrefabId
: Fusion에서 프리팹에 할당된 ID.Path
: 프리팹의 파일 경로.