Unity篇03:Unity中的旋转 - kudan-game/ArtArtist-Repo GitHub Wiki
更多Unity Transform的介绍:请看:https://www.cnblogs.com/eangulee/p/3572037.html
1.transform.localEulerAngles
使用localEulerAngles进行旋转的时候,我们要使用transform.localEulerAngles = new Vector3(x, y,z)
; 其中,new Vector(x,y,z)为游戏物体最终旋转到的目标角度,x.y,z的值分别都是以0为基准,假设游戏物体的初始角度为(x1,y1,z1),则游戏物体从(x1,y1,z1)旋转到(x,y,z),但是是以父游戏物体的坐标系为参考(自己是顶级游戏物体除外),设置的角度是相对角度(类似于相对路径)。
2.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),,同时也以世界坐标系为参考,而不是以父级游戏物体的坐标系为准。设置的角度是绝对角度(类似于绝对路径)。
3.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),,同时也以世界坐标系为参考,而不是以父级游戏物体的坐标系为准。
4.transform.localRotation
//类似于localEulerAngles
5.transform.Rotate(参数)
ransform.Rotate(x,y,z):以自身坐标系为参考,而不是世界坐标系,分别以x度y度z度绕X轴、Y轴、Z轴匀速旋转
transform.Rotate(轴,Space.Self):以自身坐标系为参考
Transform.Rotate(轴,Space.World):以世界坐标系为参考
//第一种
// transform.Rotate(new Vector3(90, 0, 0));
// transform.Rotate(0,25*Time.deltaTime ,0,Space.Self );
//第二种
// transform.Rotate(Vector3.up ,90);
//第三种 四元数
//transform.rotation = Quaternion.Euler(45, 45, 45);
//第四种 慢慢旋转
//Quaternion targetRotation = Quaternion.Euler(45, 45, 45);
//transform.rotation = Quaternion.Slerp(transform.rotation,targetRotation,Time.deltaTime *3);
//第五种绕某点旋转
//transform.RotateAround(new Vector3(5, 5, 1), Vector3.up, 20*Time.deltaTime);
//第六种欧拉角
//transform.eulerAngles = new Vector3(90, 0, 0);
//transform.localEulerAngles = new Vector3(90, 0, 0);
更多介绍: