Unity AnimationCurve.Evaluate采用何种时间单位?是否为归一化时间?
动画曲线的Evaluate函数用于获取指定时间点对应的曲线值,但很多开发者不清楚该接口使用的时间基准或单位是什么。
对于ParticleSystem.MinMaxCurve的Evaluate方法,官方明确说明其入参为曲线持续时间的0到1归一化范围值:
要评估曲线的归一化时间(范围为0-1,其中1代表100%)。当ParticleSystem.MinMaxCurve.mode设置为ParticleSystemCurveMode.Curve或ParticleSystemCurveMode.TwoCurves时,该参数生效。
更新说明
性能相关说明:
- 在Unity传统MonoBehaviour开发体系中,
AnimationCurve.Evaluate执行速度非常快,内置了相邻关键帧查找缓存机制,还会保留上一次评估的位置,在循环评估场景下速度优势尤为明显,是Unity做过经典底层优化的接口。 ParticleSystem.MinMaxCurve.Evaluate方法适配Jobs系统,是UnityEngine.ParticleSystemJobs功能更新的一部分。- 在少量调用场景下(约1000次评估步骤以内),二者性能表现相近;但如果配合Jobs系统进行大量细粒度评估(超过10000次),MinMaxCurve的Evaluate性能更优。
内容的提问来源于stack exchange,提问作者Confused
相关产品推荐
相关产品推荐

