This document is about: FUSION 2-SHARED
SWITCH TO

ネットワークプロパティ

概要

ネットワークプロパティは、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]属性で、NetworkArrayNetworkDictionaryNetworkLinkedListNetworkStringstringの最大サイズを定義できます。

C#

public class MyNetworkBehaviour : NetworkBehaviour
{
  [Networked, Capacity(14)]
  string MyString { get; set; }

  [Networked, Capacity(8)]
  NetworkArray<byte> MyArray { get; }
}

変更検知

変更検知をご覧ください。

Back to top