1

这段代码涉及 Vector3 moveVector 与 float moveSpeed 和另一个 float 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;
  }
4

1 回答 1

2

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

因此,如果我们有一个向量 3、2、1,每个轴都乘以该值:3 * speed * deltaTme 2 * speed * deltaTme 1 * speed * deltaTime

transform.position和写作一样gameObject.transform.position。因为脚本附加到游戏对象。

注意 GameObject 和 gameObject 之间的区别。

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

于 2020-10-16T10:42:32.697 回答