ネットワークプロパティ
概要
ネットワークプロパティは、NetworkBehaviour派生クラスのプロパティで、ネットワークオブジェクトの状態を定義します。
ネットワークプロパティを定義するには、NetworkBehaviour派生クラスの自動実装プロパティに[Networked]属性を追加します。
ネットワークプロパティは独自実装しないで、自動実装プロパティのままにしてください。もし、プロパティに特別な処理をする必要があるなら、別のプロパティでラップしてください。
C#
public class PlayerBehaviour : NetworkBehaviour
{
  [Networked] public float Health { get; set; }
}
有効な型
Fusionが対応している([Networked]属性を追加できる)型は以下の通りです。
- Primitives: byte, short, int, long, ushort, uint, ulong, float, double
- Unity Types: Vector2, Vector3, Vector4, Quaternion, Vector2Int, Vector3Int, Rect, RectInt Color, Color32
- Fusion Types: NetworkObject, NetworkBehaviour, NetworkString<>, NetworkBool, Angle, NetworkId, PlayerRef, SceneRef, TickTimer
- Strings
- Structs implementing INetworkStruct
- Arrays of supported types. E.g. Int[].
デフォルト値の設定
ネットワークプロパティは、デフォルト値を設定することが可能です。
共通型
ほとんどの共通型は、単純な代入で十分です。
C#
public class PlayerBehaviour : NetworkBehaviour
{
  [Networked] public float Health { get; set; } = 100;
  [Networked] public NetworkObject DefaultNetworkObject { get; set; } = GameObject.FindGameObjectWithTag("Foo").GetComponent<NetworkObject>();
}
コレクション
ネットワークコレクション(NetworkArray<T>・NetworkDictionary<K, V>・NetworkLinkedList<T>・NetworkString<_size>)には、特別な構文が必要です。Network Collectionsをご覧ください。
Capacity
[Capacity]属性で、NetworkArray・NetworkDictionary・NetworkLinkedList・NetworkString・stringの最大サイズを定義できます。
C#
public class MyNetworkBehaviour : NetworkBehaviour
{
  [Networked, Capacity(14)]
  string MyString { get; set; }
  [Networked, Capacity(8)]
  NetworkArray<byte> MyArray { get; }
}
変更検知
変更検知をご覧ください。
Back to top