骑手 IDE 告诉我以下操作效率低下
transform.Translate(moveDirection * speed * Time.smoothDeltaTime);
并想将其重写为
transform.Translate(Time.smoothDeltaTime * speed * moveDirection);
有人知道为什么吗?
都是乘法,有什么区别?
对于某些上下文,这里是 speed 和 moveDirection 的值
private Vector3 moveDirection = Vector3.left;
private float speed = 2.5f;
我有点困惑为什么它更好?
有人可以帮忙吗?
Thanks
Vector3 有 3 个分量。 X、Y 和 Z。
将 Vector3 乘以一个值会将其分量乘以该值。
由于向量旁边有 2 个值,因此顺序对结果不重要,但对操作数量重要。
这是因为向量优先将导致 3+3=6 乘法:
- X*=speed
- Y*=speed
- Z*=speed
- X*=time
- Y*=time
- Z*=time
而向量最后将是 1+3=4 次乘法:
- 比例=速度*时间
- X*=scale
- Y*=scale
- Z*=scale
不管怎样,这只是 Rider 对性能的偏执,而这种程度的优化虽然总是受欢迎的,但在大多数情况下绝对不需要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)