unity中gameobject本身的坐标轴与世界坐标轴的关系

3D场景中新建一个cube,如图所示
此时cube的坐标轴方向跟右上角世界坐标轴方向是一致的。
为cube添加摇杆移动事件,移动代码如下
void Updater(){

this.transform.Translate((new Vector3(1, 0,0 )) * Time.deltaTime * 1f);
}
运行,发现移动方向为x轴正方向,那么是世界坐标x轴的正方向还是物体本身坐标轴方向呢?
将物体绕Y轴旋转90°,此时物体本身坐标轴发生改变,不再与世界坐标方向轴相同
(此时物体的坐标x轴正方向为世界坐标z轴负方向,y轴方向与世界坐标方向相同,物体坐标z轴正方向与世界坐标x轴方向相同)
运行,发现物体运动方向为本身的x轴正方向,而不是世界坐标的x轴正方向。但是物体坐标是根据世界坐标轴来确定的,所以我们可以发现物体在移动时,改变的不是x轴坐标而是z轴坐标,原因是因为物体坐标x轴正方向为世界坐标z轴负方向。
另外,我们将物体绕y轴选择90°之后,再绕x轴旋转10°,结果如下图
可以很容易看出,物体旋转时仍然是按照本身的坐标轴旋转。
再测试scale(大小比例)变化
发现物体在本身坐标的x轴的方向扩大了2倍


综上测试可以得出:
gameobject本身的坐标轴影响本身的旋转,位移方向、大小比例、物体朝向左右等
世界坐标轴则确定了gameobject的坐标

你可能感兴趣的:(unity手游开发)