Dynamic Reference Variable Driver (泛型)
Dynamic Reference Variable Driver (泛型)
DynamicReferenceVariableDriver 组件可以将一个 SyncRef(引用容器)驱动为名为 VariableName 的动态变量的值。如图所示。
如果无法找到指定的变量,该值将回退为 DefaultTarget(默认目标)。关于其工作原理的详细说明,请参阅 Dynamic Variables(动态变量)页面。
属性 (Fields)
| 属性名称 | 类型 | 描述 |
|---|---|---|
| VariableName (变量名) |
String | 动态变量的名称。 |
| Target (驱动目标) |
RefDrive<T> | 被该变量定义所驱动的字段引用。 (注:即你希望控制哪个属性的引用,例如某个 Slot 的 Parent) |
| DefaultTarget (默认目标/回退值) |
T | 当动态变量不存在时,使用的默认引用值。 |
用法
暂无内容。
示例
可以通过将此组件的泛型类型设置为 Slot,来巧妙利用动态变量的读取机制实现特殊功能。由于此组件是从其所在的 Slot 位置开始读取变量的,因此它可以用来驱动另一个 Slot 的 Parent(父级)字段。将两者结合使用可以产生有趣的行为。
例如:
- 设置 Avatar(用户): 假设一个 Avatar 的头部有一个 Slot,上面挂着
DynamicReferenceVariable<Slot>,其VariableName设置为 "User/Hat"(指向头部 Slot)。 - 设置物品(帽子架): 有一个物品(比如帽子架),其 Slot 上挂着
DynamicReferenceVariableDriver<Slot>,VariableName也设置为 "User/Hat"。将DefaultTarget设置为帽子架自己的 Slot。 - 设置移动物体(帽子): 帽子架下有一个子物体(帽子)。将帽子的
Parent(父级)字段拖入帽子架上的 Driver 组件的Target中。 - 运行逻辑:
- 当帽子架放置在世界中时,它找不到 "User/Hat" 变量。因此,驱动器将帽子的父级设置为
DefaultTarget(即帽子架),帽子乖乖地待在架子上。 - 一旦用户拿起帽子架(帽子架进入用户的层级结构),驱动器就能在父级链中找到名为 "User/Hat" 的变量(位于用户头部)。
- 此时,帽子会立即从架子上移动(重设父级)到用户头部的 Slot。
- 请注意,在这个场景中,负责“读取”变量位置的是架子,而不是帽子。
- 当用户丢下架子(解除父子关系),架子无法再找到变量,驱动器回退到
DefaultTarget,帽子会立即飞回架子上。
- 当帽子架放置在世界中时,它找不到 "User/Hat" 变量。因此,驱动器将帽子的父级设置为
这也允许被移动的 Slot(也就是帽子)去采样其他的数值,从而实现更复杂的读取和交互(例如:帽子移动到用户头上时,颜色变为该用户设置的代表色)。
