Mar*_*ith 6 c# unity-game-engine rider
骑手 IDE 通知我以下内容效率低下
transform.Translate(moveDirection * speed * Time.smoothDeltaTime);
Run Code Online (Sandbox Code Playgroud)
并想将其重写为
transform.Translate(Time.smoothDeltaTime * speed * moveDirection);
Run Code Online (Sandbox Code Playgroud)
有人知道为什么吗?
都是乘法,有什么区别?
对于某些情况,这里是 speed 和 moveDirection 的值
private Vector3 moveDirection = Vector3.left;
private float speed = 2.5f;
Run Code Online (Sandbox Code Playgroud)
我有点不明白为什么它更好?
任何人都可以帮忙吗?
谢谢
Xen*_*oRo 10
Vector3 有 3 个组件。X、Y 和 Z。
将 Vector3 乘以一个值,就是将组件乘以该值。
由于向量旁边有 2 个值,因此顺序与结果无关,但与操作次数有关。
那是因为向量优先将导致 3+3=6 次乘法:
虽然 vector-last 将是 1+3=4 乘法:
无论哪种方式,这只是 Rider 对性能的偏执,而这种级别的优化虽然总是受欢迎,但在大多数情况下绝对不是必需的。
| 归档时间: |
|
| 查看次数: |
1517 次 |
| 最近记录: |