Skip to main content

ValueMultiplexer 组件

Value Multiplexer 官方介绍

ValueMultiplexer 组件允许用户管理一个数值列表,并使用其中的某一个值来驱动 (Drive) 目标字段,其功能类似于电子学中的多路复用器。

image.png

字段 (Fields)

属性名称 类型 描述
Target
(目标)
FieldDrive<T> 由当前选定的列表数值所驱动的字段。
Index
(索引)
Int 基于 0 的索引,决定选择 Values 列表中的哪一个值。若数值超出 [0; length-1] 的范围,将在内部自动循环(Wrap around)。
Values
(数值列表)
SyncFieldList<T> 数值列表。其中的每个元素也可以被单独驱动或写入。
AllowWriteBack
(允许回写)
Bool 当设置为 true 时,对 Target 的写入操作,或来自代表选中值的 Source(源)的写入操作,都将重定向到当前索引对应的列表项中。

用法 (Usage)

该组件的行为类似于 ValueCopy,它将 Index 指定的列表项作为值进行输出。每当驱动(Drive)评估时,对 Index 或列表项的任何更改都会直接影响到 Target

此外,该组件实现了 IValue 接口。这意味着你可以通过使用 ProtoFlux 工具尖端(Tip)抓取并拉出组件页眉,从而将其作为 ProtoFlux 源 (Source) 使用。这让你在同时提取 Index 字段源时,能像使用数组(Array)一样操作该组件。需要注意的是,该组件的“源”更新是即时的,而“驱动”则受限于每帧一次的更新频率。

示例 (Examples)

  • ProtoFlux 中的类数组访问:配合 AllowWriteBack 设置,你可以像操作数组一样读写列表,但请注意一次只能访问单个值。

    image.png


  • 索引循环演示:当 Index 设为超出列表长度的值时(例如列表长度为 3,索引设为 3),它会自动循环回 0。

    image.png


参见 (See Also)