【Unity3D自学记录】Unity3D之localEulerAngles

来源:互联网 发布:义乌长春淘宝招聘信息 编辑:程序博客网 时间:2024/04/29 12:27
自身欧拉角,说这是对象自己相对于父对象的旋转角度,该变量可用于读取和设置该角度。不可以用于递增,角度超过360度将会失效(不懂)。
创建一个cube对象并reset,创建一个测试脚本绑定到该cube对象上,在脚本的start方法中设置cube对象的欧拉角,形如:
transform.localEulerAngles = new Vector3(0, 0, 0);
经过几番测试如下:
1、transform.localEulerAngles = new Vector3(0, 0, 0);物体的旋转方向是默认的方向。

2、transform.localEulerAngles = new Vector3(90, 0, 0);沿x轴指向看,逆时针旋转90度。

3、transform.localEulerAngles = new Vector3(0, 90, 0);沿y轴指向看,逆时针旋转90度。

4、transform.localEulerAngles = new Vector3(0, 0, 90);沿z轴指向看,逆时针旋转90度。

如果将以上的角度改成负数,沿着改变轴的指向看,将会是顺时针方向。

4、测试下文档上说的不能对其递增。在update方法里每帧沿z方向的角度多加1度,看下效果。发现能一直旋转,变量值一直增加,transform里R的z参数在[-180,180]之间变化。

5、现在测试下,相对于父对象的旋转。创建一个空物体,作为上面的cube的父对象,将空物体沿z轴随意旋转一个角度,此时cube的角度与空物体完全一样。start方法中添加 transform.localEulerAngles = new Vector3(0, 0, 90);另cube对象旋转,我们来看看效果。

空物体如图

分下面两种情况:

1)cube对象不做任何更改,此时与父物体的角度完全一样。旋转后如下

与上图的父对象对比,以及与右上角的坐标轴对比,好像它相对于自己旋转也能说得通,相对于父对象旋转也能说得通。

2)这次我们将cube对象沿z轴旋转一个角度,旋转后不与父对象重合。

启动项目,旋转后如下:

发现与上面的1)里的一模一样,说明cube旋转的角度由其父对象的角度决定。
0 0
原创粉丝点击