네트워크 속성(Networked Properties)
개요
네트워크 속성은 NetworkBehaviour
를 상속받은 클래스의 속성으로, 관련된 네트워크 객체의 네트워크 상태를 정의합니다.
네트워크 속성을 정의하려면, NetworkBehaviour
를 상속받은 클래스의 자동 속성(auto-property)에 [Networked]
속성을 추가하면 됩니다.
중요: 직접 속성을 구현하지 마세요! 자동 속성(auto-property)으로 남겨두세요. 특수한 속성 처리가 필요한 경우, 별도의 속성으로 래핑 해야 합니다.
C#
public class PlayerBehaviour : NetworkBehaviour
{
[Networked] public float Health { get; set; }
}
지원되는 타입
Fusion에서 지원되는 타입은 다음과 같습니다:
- 기본 타입: byte, short, int, long, ushort, uint, ulong, float, double
- 유니티 타입: Vector2, Vector3, Vector4, Quaternion, Vector2Int, Vector3Int, Rect, RectInt, Color, Color32
- Fusion 타입: NetworkObject, NetworkBehaviour, NetworkString<>, NetworkBool, Angle, NetworkId, PlayerRef, SceneRef, TickTimer
- 문자열(Strings): Capacity 속성이 필요
- 구조체(Structs): INetworkStruct를 구현한 구조체
기본값 설정
[Networked]
속성에 대해 기본값을 설정할 수 있습니다.
일반 타입(Common Types)
대부분의 일반적인 타입은 간단한 할당으로 기본값을 설정할 수 있습니다.
C#
public class PlayerBehaviour : NetworkBehaviour
{
[Networked] public float Health { get; set; } = 100;
[Networked] public NetworkObject DefaultNetworkObject { get; set; } = GameObject.FindGameObjectWithTag("Foo").GetComponent<NetworkObject>();
}
컬렉션
네트워크 컬렉션(Network Collections)인 NetworkArray<T>
, NetworkDictionary<K, V>
, NetworkLinkedList<T>
, NetworkString<_size>
등은 특별한 구문이 필요합니다. 자세한 내용은 해당 페이지를 참조하세요.
용량
[Capacity]
속성은 NetworkArray
, NetworkDictionary
, NetworkLinkedList
, NetworkString
, 문자열 등의 최대 크기를 정의하는 데 사용됩니다.
C#
public class MyNetworkBehaviour : NetworkBehaviour
{
[Networked, Capacity(14)]
string MyString { get; set; }
[Networked, Capacity(8)]
NetworkArray<byte> MyArray { get; }
}
변경 감지
변경 감지에 대한 자세한 내용은 변경 감지을 참조하세요.
Back to top