【发布时间】:2021-09-26 04:37:18
【问题描述】:
我想在 Update() 方法中移动和旋转大量对象。运动部分非常简单。问题与旋转性能有关。欧拉角的操作非常昂贵,我想优化这部分。
我都试过了
transform.rotation.eulerAngles += _rotationDirection * Time.deltaTime;
和
transform.Rotate(_rotationDirection * Time.deltaTime);
但它们的调用成本很高。
由于对象具有恒定的旋转值,我尝试了这个:
private void Awake()
{
_rotationDelta = Quaternion.Euler(_rotationDirection * _rotationSpeed);
}
private void Update()
{
transform.rotation *= _rotationDelta;
}
这似乎更高效,但我现在的问题是我不知道如何将 Time.deltaTime 链接到这个,因为你不能只写
transform.rotation *= _rotationDelta * Time.deltaTime;
所以,我的问题是,如果旋转增量在对象的生命周期内是恒定的,那么旋转对象的最快方法是什么?
【问题讨论】: