Unity篇03:Unity中的旋转 - kudan-game/ArtArtist-Repo GitHub Wiki

介绍Unity中的旋转类型

更多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):以世界坐标系为参考

Unity旋转方式之总结

        //第一种
        // 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);

更多介绍:

https://blog.csdn.net/xdedzl/article/details/81488894

https://blog.csdn.net/bobo553443/article/details/79671174

⚠️ **GitHub.com Fallback** ⚠️