共计 2922 个字符,预计需要花费 8 分钟才能阅读完成。
跟随行为
功能描述
跟随行为允许一个对象在时间或距离延迟后跟随另一个对象。更一般地说,它记录了一个对象的简短历史变化,使其能够执行诸如记录和重放或倒带时间等任务。
仅将跟随行为添加到对象上并不会有任何效果。你必须使用如“跟随对象”这样的动作,然后它才会开始改变添加了行为的对象。
你可以在 Construct 的示例浏览器中找到许多使用跟随行为的示例,例如跟随行为示例和跟随记录 / 重放。
脚本编程
在使用 JavaScript 或 TypeScript 编码时,可以通过 IFollowBehaviorInstance 脚本接口访问此行为的功能。
跟随属性
模式
要使用的跟随模式。时间模式在时间延迟后跟随。距离模式以距离延迟跟随。在距离模式下,X 和 Y 属性始终被跟随,因为这对确定距离是必要的。
延迟
跟踪对象的延迟。在时间模式下,这是以秒为单位的跟随延迟。在距离模式下,这是以像素为单位的跟随距离。延迟不能超过最大延迟。
最大延迟
以与延迟相同的单位确定记住的数据量。例如,在时间模式下,如果延迟是 1 秒但最大延迟是 3 秒,那么行为会记住 3 秒的历史,但以 1 秒的延迟跟随。延迟可以增加到但不能超过最大延迟。通常,最大延迟可以与延迟相同,因为不需要记住额外的数据,但如果可能增加延迟,拥有更高的最大延迟可能会很有用。请注意,最大延迟越高,记住的数据就越多,因此使用的内存也会越多,所以最好使用尽可能短的最大延迟。
历史速率
每秒保存关于被跟随对象数据的条目速率。例如,如果历史速率为 10,则每 100ms 保存一次被跟随对象的状态。在跟随时,条目之间的值会被插值。较高的速率会使用更多内存并产生更高的性能开销,但运动更平滑;为了效率,最好选择产生可接受平滑运动的最低速率。默认的 30 通常会产生好的结果。
跟随 X
跟随 Y
跟随 Z 高度
跟随宽度
跟随高度
跟随角度
跟随透明度
跟随可见性
跟随销毁
选择要跟随的内置属性。例如,如果启用了跟随 X 和 Y,但没有启用宽度和高度,那么如果被跟随的对象移动并改变大小,跟随的对象只会移动而不会改变大小。跟随更多属性会使用更多内存。跟随销毁状态意味着如果被跟随的对象被销毁,那么在同一点上跟随的对象也将被销毁。
启用
行为是否最初被启用。
跟随条件
有跟随数据
如果行为有足够的数据能够开始在延迟后跟随则为真。例如,如果行为开始在 5 秒的时间延迟后跟随一个对象,那么前 5 秒没有跟随数据,因此对象不会被更新,有跟随数据将为假。一旦过了 5 秒,它就开始更新,有跟随数据将为真。注意,如果跟随开始时启用了“从当前位置”选项,那么这将立即算作有跟随数据。
正在跟随对象
如果已设置任何对象被跟随则为真。如果为假,则行为不会记录任何信息。
已暂停
使用“设置暂停”动作暂停跟随后为真。
正在跟随自定义属性
测试特定自定义属性(由字符串指定)当前是否启用跟随。
比较延迟
比较最大延迟
比较历史速率
比较模式
已启用
正在跟随属性
测试行为属性的当前值。有关更多详情,请参阅跟随属性。
跟随操作
Follow 对象
开始关注指定的对象。这将开始记录指定对象随时间推移的更改,并且在延迟期过后,它将开始跟踪已启用属性的更改。在延迟过去之前,已关注数据将为假,因为尚没有任何数据可供关注。或者,可以启用“从当前位置”设置,以允许立即跟随。启用后,这将根据以下对象过去在延迟时间的当前状态创建初始历史记录条目。因此,具有跟随数据立即为真,并且对象能够立即开始更新。这具有在延迟时间内从下一个对象的起始位置插值到下一个对象的起始位置的效果。
关注自我
开始关注行为所属的对象。这将记录当前对象随时间的变化。在此模式下,该行为不会更新对象; 它只是记录历史。请注意,与跟随其他对象一样,数据仅保留到最大延迟。然后,可以将历史记录保存到 JSON 并在以后重播,或者可以停止关注,然后设置延迟以移动到上一个位置。
停止关注
停止记录所关注对象的历史记录。所遵循的对象的任何记录历史记录仍将保留,并且它仍将继续跟踪更改,直到使用此操作为止。
清除历史记录
删除有关被跟踪对象的任何记录历史记录。这将导致 Has follow 数据变为 false,并停止更新对象,直到再次收集到足够的数据。这对于重置行为很有用。
设置暂停
设置是否暂停关注。暂停时,不会记录进一步的历史记录,但它也会停止推进后续时间。恢复后,该行为将重新开始记录所关注对象的历史记录。如果跟随对象在跟随暂停时发生了重大变化,则它将在跟随历史记录时跳到新位置,因为两者之间的任何更改都不会保存。
倒带历史
倒带后续时间,删除该时间之后的历史记录条目,然后继续记录历史记录。请注意,由于超过该时间的数据将被擦除,因此无法倒带超过最大延迟。此操作允许实现“倒带时间”功能,在该功能中,对象可以向后倒退,然后从不同的位置继续,同时保留其继续时间之前的历史记录。
加载历史记录 JSON
从先前由 HistoryAsJSON 表达式保存的 JSON 格式的数据字符串中加载所跟踪对象的记录历史记录。这还会将延迟设置为加载最早的历史记录条目的时间,因此它会立即跟随最初保存的数据量。这允许创建记录 / 回放功能。
开始关注自定义属性
停止关注自定义属性
启动或停止遵循自定义属性。这允许 Follow 行为跟踪内置属性之一(如 X 和 Y 位置)以外的自定义值。可以遵循多个自定义属性,每个属性都由不区分大小写的字符串标识。自定义属性的插值模式决定了如何确定历史记录条目之间的值。Step 不插值,只使用上一个历史记录条目。线性使用线性插值,适用于位置和大小等线性值。Angular 使用角度插值,适用于角度等旋转值。请注意,如果自定义属性值是字符串,则仅支持步骤模式。必须使用 Set 自定义属性值设置要记录的值,然后可以使用 DelayedCustomPropertyValue 表达式检索要遵循的值。
设置自定义属性值
设置所遵循的自定义属性的当前值。自定义属性由不区分大小写的字符串标识。该值可以是字符串或数字,但如果是字符串,则它只会使用步进插值模式。在遵循自定义属性时,应在每次刻度时使用此操作,以便在行为决定添加历史记录条目时可以使用最新值。
设置延迟
设置为启用
设置以下属性
设置历史记录速率
设置最大延迟
设置模式
设置相应的行为属性。有关详细信息,请参阅关注属性。
设置属性插值
更改其中一个内置属性的插值模式。通常,这用于将其中一个内置属性从平滑插值更改为步进插值。例如,使用 Platform 行为镜像对象时,应始终立即更新宽度,并且不插入任何中间值。
关注表达式
关注 UID
当前要关注的对象的 UID,如果未设置要关注的对象,则为 -1。
历史记录 AsJSON(MaxDelay)
将所关注对象的当前记录历史记录保存为 JSON 格式的字符串。然后,稍后可以使用“加载历史记录 JSON”操作再次加载。MaxDelay 参数可用于仅保存最近历史记录的一部分,而不是所有记录的历史记录,适用于记录 / 重播功能,当记录持续时间小于行为的最大延迟时。如果 MaxDelay 为 0,则保存所有历史记录。
DelayedCustomPropertyValue(CustomProperty)
检索自定义属性要遵循的当前值,该值由不区分大小写的字符串指定。
延迟
最大延迟
历史速率
返回相应的行为属性。有关详细信息,请参阅关注属性。