Skip to main content

变量篇

本篇主要描述VRChat Networking ——UdonSync 标签以及带参网络同步所允许同步的类型。

——————

网络同步支持以下类型的参数同步

布尔:bool

文字:char、string、VRCUrl

整数:byte、sbyte、short、ushort、int、uint、long、ulong

浮点:float、double

元数组:Vector2、Vector3、Vector4、Quaternion、

颜色:Color 和 Color32。

以及他们的数组[]

————

请注意:

在Udon:OnValueChanger事件中要求:

变量只要值改变就算是更新

而数组只有当大小发生改变时才会触发改变,值改变不会触发OnValueChanger事件

———

在UdonSharp中使用OnValueChanger事件的方法

OnValueChanger事件并非是一个固定的事件,而是一种特殊的自定义事件,其效果是当“网络事件”触发时,如果指定的变量发生了改变,其也会发生改变。其最简写法如下:

[UdonSynced, FieldChangeCallback(nameof(ScoreValueChange)SyncedToggle))]
    private intbool score;//nameof指定参数改变时触发的方法_syncedToggle;

    privatepublic bool ScoreSyncedToggle
    {
        set
        {
            _syncedToggle = value;
          //下面写代码逻辑
        }
        get => score;
  set
  {
    score = value;
    /*
      算法
    */
  }_syncedToggle;
    }

请注意:FieldChangeCallback 只有在 SetProgramVariable 或网络同步更新 syncedToggle 值时才会触发

变量必须同时包含[UdonSynced],如果你尝试从 FieldChangeCallback())]

UdonBehaviour

必须要网络事件发生时,才会触发。外部设置,UdonSharp 会故意编译失败。此时应使用该属性或显式使用 SetProgramVariable