属性
属性是系统中附加到元素的一段数据。例如,粒子的颜色、粒子的位置或生成系统创建的粒子数量都是属性。
系统可以读取或写入属性以执行自定义行为并区分元素。
系统仅在需要时存储属性。这意味着系统不会存储任何不必要的数据,从而节省内存。
使用属性
写入属性
要写入属性,请使用代码块。代码块是唯一可以将属性写入系统的图形元素。
如果稍后的上下文读取属性,则可视化特效编辑器仅会将您写入的属性存储在模拟数据中。这意味着:
*当您在初始化或更新上下文中写入属性时,如果稍后的更新或输出上下文读取属性,则可视化特效编辑器仅会将属性存储在模拟数据中。 *当您在输出上下文中写入属性时,可视化特效编辑器不会将属性存储在模拟数据中,而仅使用该属性进行渲染。
读取属性
要读取属性,请使用运算符或代码块:
使用 **Get Attribute* 运算符。 使用 **Set Attribute* 代码块中的不同的合成模式,具体取决于属性的先前值。
注意:
*如果您读取可视化特效编辑器未存储在模拟数据中的属性,则该属性会传递其默认的常量值。 *目前,您只能读取粒子和 ParticleStrip 系统中的属性。要读取生成系统中的属性,请使用生成器回调。
属性位置
每个系统都将属性存储在其自己的特定数据容器中。但是,您可以从当前模拟数据池或系统所依赖的另一个数据池中读取属性。
当前
当前属性位置指的是您从中读取值的当前系统数据容器。例如:
*来自粒子系统的粒子数据。 *来自 ParticleStrip 系统的 ParticleStrip 数据。 *来自 Spawn 上下文或通过 SendEvent EventAttribute 有效负载发送的 SpawnEvent 数据。
Source
源属性位置指的是您从中读取值的先前系统数据容器。在系统数据更改后,您只能从系统的第一个上下文中的源属性读取。比如,您只能访问粒子 / ParticleStrip 系统初始化上下文中的 EventAttributes 和 GPU EventAttributes。
*在初始化粒子 / 初始化 Particle Strips 上下文中: *从传入的生成上下文中。 *从其他粒子系统,通过 GPUEvent 生成。
可变属性
某些属性具有可变属性。这些属性可以是不同维度的标量或矢量,具体取决于您针对模拟和/或渲染所需的组件。
当您从可变属性中读取时,它会使用其默认值从所有其他隐式组件中读取。
例如,您可以将 Quad 粒子的比例表达为二维向量(作为四边形的宽度和长度),而要表达 Box 粒子的比例,您可以使用一个三维向量(作为立方体的宽度、长度和深度)。当您设置可变属性时,所有通道组合的下拉选单允许您仅写入必要的通道。
另一个例子是围绕其法线旋转精灵。您只需角度属性的 Z 组件 (angleZ),所以无需存储 angleX 和 angleY.