Unity中的 旋转

Unity中的 旋转

前言:

今天来系统的学习一下Unity中的几种旋转以及相应的一些经常用到的函数

 

 

 

 

 

 

 

 


欧拉角

我们平时看到的tranform里的角就是欧拉角

这是欧拉角。这三个分量分别是绕x轴、y轴、z轴旋转的角度。

 

transform.Rotate属性

transform.Rotate(x,y,z):以自身坐标系为参考,而不是世界坐标系,分别以x度y度z度绕X轴、Y轴、Z轴匀速旋转

transform.Rotate(轴,Space.Self):以自身坐标系为参考

Transform.Rotate(轴,Space.World):以世界坐标系为参考

其中轴是一个向量(vector)

 

 

 

transform.eulerAngles函数

transform.eulerAngles= new Vector3(x,y,z)

 

new Vector(x,y,z)为游戏物体最终旋转到的目标角度,x.y,z的值分别都是以0为基准,假设游戏物体的初始角度为(x1,y1,z1),则游戏物体从(x1,y1,z1)旋转到(x,y,z),,同时也以世界坐标系为参考,而不是以父级游戏物体的坐标系为准。

 

 

注意:Unity世界中的旋转遵循左手定则,左手方向为正方向

 


四元数

关于四元素的原理可以参考这个【Unity技巧】四元数(Quaternion)和旋转

 

 

transform.rotation

//将欧拉旋转角转换为四元素旋转角

Quaternion rotation= Quaternion.Euler(new Vector3(x, y,z));

Transform.rotation=rotation;

 

new Vector(x,y,z)为游戏物体最终旋转到的目标角度,x.y,z的值分别都是以0为基准,假设游戏物体的初始角度为(x1,y1,z1),则游戏物体从(x1,y1,z1)旋转到(x,y,z),,同时也以世界坐标系为参考,而不是以父级游戏物体的坐标系为准。

 

 

 

 

发表评论

是的,我就是计算机界的枭雄!