Vector3.forward、transform.forward与物体坐标系、世界坐标系间的联系

什么是物体坐标系、世界坐标系

  • 区分视觉认识上的前方,与物体坐标系的前方。
  • Vector3.forwardtransform.forward都表示前方,为了理解他们的区别,应该把他们理解为一个坐标点。

    Vector3.forwardtransform.forward参考的是哪个坐标系

  • Vector3.forward仅仅表示一个数据(0, 0, 1),不参考任何坐标系,你把它放在哪个坐标系中它就参考哪个坐标系。
  • transform.forward是参考世界坐标系,它总是用在世界坐标系中。
  • Vector3.forward是一个常量;transform.forward是一个变量。
// 朝着指定的方向移动
transform.Translate(transform.forward, Space.World);
transform.Translate(Vector3.forward, Space.Self);

让物体移动的实现步骤

  1. 确定要移动的方向。不用确定坐标系,你就能知道你想朝哪个方向移动。
  2. 选择坐标系。这里通常都用物体坐标系或者惯性坐标系,
  3. 在选定的坐标系中,描述要移动的方向向量。
    // 坦克朝着自己的前方移动
    transform.Translate(transform.forward, Space.World);
    transform.Translate(Vector3.forward, Space.Self);