(Unity) 向量乘法和位置更新如何统一工作?

(Unity) How does vector multiplication and position updates work in unity?

这段代码涉及 Vector3 moveVector 与浮点数 moveSpeed 和另一个浮点数 Time.deltaTime 的乘法。这些浮点数是否乘以 Vector3 (x, y, z) 的每个值?此外,如果我写 transform.position 而不是 GameObject.transform.position,我认为 transform.position 转换全局对象的位置,从而更新任何 GameObject/prefab 的位置是否正确?移动脚本附加到?

void Move(Vector3 desiredDirection)
  {
   moveVector.Set(desiredDirection.x, 0f, desiredDirection.z);
   moveVector = moveVector * moveSpeed * Time.deltaTime;
   transform.position += moveVector;
  }

是的。 moveVector * moveSpeed * Time.deltaTime; 从矢量中取出每个数字并将其与移动速度相乘,然后再次与 Time.deltaTime。

因此,如果我们有一个向量 3、2、1,则每个轴都乘以该值: 3 * 速度 * 增量时间 2 * 速度 * 增量时间 1 * 速度 * deltaTime

transform.position等同于写gameObject.transform.position。因为脚本附加到游戏对象。

注意 GameObject 和 gameObject 的区别。

gameObject 是脚本附加到的当前对象 GameObject是object

的baseclass