ネットワークプロパティ
概要
ネットワークプロパティは、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