VRChat 非公式日本語ドキュメント

属性(Attributes)

属性(Attributes)は、UdonSharpのクラス、フィールド、メソッドの機能を拡張します。UdonSharpは独自の属性を追加するだけでなく、既存の多くのC#やUnityの属性もサポートしています。

tip

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を使用できるようになります。

最終更新: