Unity中关于欧拉角的理解

        欧拉角eulerAngles在Unity3D是一个Vector3类的变量,官方约定俗成的层级关系是ZXY,即最里层是Z轴先旋转,中间层是X轴,最外层是Y轴。

 
 

无论以何种方式旋转三个轴,都会有出现万向锁的情况,万向锁主要在动画里面旋转时出现我们不希望见到的旋转路径,所以官方以ZXY顺序来旋转的时候可以最大程度上避免普通情况下会出现的万向锁。

当然最好的解决方法是使用四元数,但是由于我现在没来得及深入学习,随后再进行探讨。

下面来说一下一些疑惑的代码,梳理一下理解的顺序:

float xm = 0, ym = 0, zm = 0;                       //设定三个浮点数用以保存主角的移动位置
float rh = Input.GetAxis("Mouse X");                //浮点数rh用来保存鼠标绕X轴的移动,rv用以保存绕Y轴的移动
float rv = Input.GetAxis("Mouse Y");

m_camRot.x -= rv;                                   //摄像机每秒绕X轴旋转的欧拉角度
m_camRot.y += rh;                                   //摄像机每秒绕Y轴旋转的欧拉角度

代码的2,3行是取得鼠标绕X轴和Y轴的移动数据,m_camRot是一个欧拉角类型的变量,第4行代码表示的是欧拉角m_camRot绕x轴旋转的度数,第五行是绕y轴,如果不大懂可以看下图:


 

转载于:https://www.cnblogs.com/duanyunlun/p/4040298.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值