属性(Attributes)
属性(Attributes)は、UdonSharpのクラス、フィールド、メソッドの機能を拡張します。UdonSharpは独自の属性を追加するだけでなく、既存の多くのC#やUnityの属性もサポートしています。
UdonSharpの属性に関する役立つ概要については、Varneon's UdonSharp Development Practices を参照してください。
UdonSharp Attributes
以下の属性は、UdonSharpおよびVRChat SDK固有のものです。
UdonSynced
[UdonSynced] / [UdonSynced(UdonSyncMode)]
この属性が付与されたフィールドは、インスタンス内のすべてのプレイヤーに対してネットワーク経由で同期されます。詳細については、VRChatのネットワーキングドキュメントを参照してください。
例
public class Example : UdonSharpBehaviour
{
[UdonSynced]
public bool synchronizedBoolean;
[UdonSynced(UdonSyncMode.Linear)]
// This float will be linearly interpolated
public float synchronizedFloat;
}
UdonSyncMode
UdonSharp.UdonSyncMode
デフォルトでは、[UdonSynced] フィールドは補間されません。フィールドの値が変更されると、即座に変更が反映されます。同期モードを変更することで、古い値から新しい値の間をスムーズに補間することが可能です。
| Name | Summary |
|---|---|
| None | 補間なし(デフォルト) |
| Linear | 線形補間 |
| Smooth | スムーズ補間 |
| NotSynced | ([UdonSynced] を使用しない場合のデフォルト) |
UdonBehaviourSyncMode
[UdonBehaviourSyncMode] / [UdonBehaviourSyncMode(BehaviourSyncMode)]
この属性を使用すると、このUdonBehaviourの全インスタンスに適用される同期モードを選択できます。この属性を追加すると、UdonSharpはUnity上での同期モード選択用ドロップダウンを非表示にします。また、同期される変数が選択した同期モードに適しているかを確認する検証機能が有効になります。
例
[UdonBehaviourSyncMode(BehaviourSyncMode.Manual)]
public class Example : UdonSharpBehaviour
{
// This class's sync mode is manual.
}
BehaviourSyncMode
UdonSharp.BehaviourSyncMode
UdonBehaviourSyncModeと組み合わせて、対象のBehaviourの同期モードを選択するために使用します。
| Name | Summary |
|---|---|
| Any | 制約なし。Unity側で任意の同期タイプを設定可能。(デフォルト) |
| Continuous | 同期変数は非常に高い頻度で自動的に更新されますが、帯域幅を節約するために常に確実に更新されるとは限りません。 |
| Manual | 同期変数はユーザーによって手動で更新され、更新頻度は低くなりますが、要求された際の更新は確実に行われます。 |
| None | 対象のBehaviourにおいて同期変数を禁止し、UI上の同期モード選択ドロップダウンを非表示にします。何も同期されず、SendCustomNetworkEvent/NetworkCallingはこのBehaviourでは機能しません。 |
| NoVariableSync | 対象のBehaviourにおいて同期変数の使用を禁止し、同期モード選択ドロップダウンを非表示にします。ManualまたはContinuous同期のいずれかを使用するGameObject上でこのBehaviourを使用できるようになります。 |
最終更新: