【发布时间】:2021-09-20 10:35:48
【问题描述】:
动画曲线上的Evaluate 函数一次获取一个值。
https://docs.unity3d.com/ScriptReference/AnimationCurve.Evaluate.html
但不清楚(对我来说)使用什么时基或单位。
对于ParticleSystem.MinMaxCurve,这被明确描述为被评估为曲线持续时间的归一化 0 到 1 范围值:
https://docs.unity3d.com/ScriptReference/ParticleSystem.MinMaxCurve.Evaluate.html
标准化时间(在 0 - 1 范围内,其中 1 表示 100%) 来评估曲线。这在以下情况下有效 ParticleSystem.MinMaxCurve.mode 设置为 ParticleSystemCurveMode.Curve 或 ParticleSystemCurveMode.TwoCurves。
更新:
对于那些考虑性能的人: AnimationCurve 的 Evaluate 在 Unity 的 MonoBehaviour 世界的传统意义上非常快,具有缓存查找周围键的内置方法,并保留最后评估的位置。因此,在评估循环中尤其快。由 Unity 优化的高度老式的学校。
但是,ParticleSystem.MinMaxCurve 的评估受益于 UnityEngine.ParticleSystemJobs 功能的 Jobs 友好更新,并且是其一部分。
在少量使用中(大约 1000 个评估步骤或更少),它们大致相同。但是有了 Jobs 和大量细粒度的评估(超过 10,000 次),MinMaxCurve 取得了领先。
【问题讨论】:
标签: c# unity3d time curve evaluate