局部坐标 Local coordinates

常规来说,Unity 是所谓的 Y-up 坐标系,即 Y 轴正向为 向上。

1
Vector3 upDir = Vector3.up;

而这所谓的 Y-up 坐标,指的是全局坐标 Global coordinates

对于一个特定的游戏对象,默认情况下(即 x、y 和 z 轴的旋转值设为 0 时),其坐标系也是符合上述描述的。

但当其发生旋转之后,该游戏对象 自己的坐标系 就会与 全局坐标系 产生差异。

image-20210818121451812

按上图,对于蓝色小球来说:

  • Transform.forward 即蓝色箭头所指方向;
  • Transform.up 即绿色箭头所指方向;
  • Transform.right 即红色箭头所指方向;

所以有些时候,为了确保游戏对象按全局坐标系的方向进行移动,我们会锁定游戏对象的旋转。如下:

image-20210818122053080

在实际编写代码的时候,也许注意此点。