unity中欧拉角万向节死锁问题

在使用欧拉角控制cube旋转时,x轴角度被限制在-90°~90°之间,即万向节锁。如代码所示:

rota_x = cube.GetComponent<Transform>().localEulerAngles.x;
rota_y = cube.GetComponent<Transform>().localEulerAngles.y;
rota_z = cube.GetComponent<Transform>().localEulerAngles.z;
cube.GetComponent<Transform>().localEulerAngles = new Vector3(rota_x, rota_y, rota_z);

为避免这种现象发生,使用四元数的方式控制cube的旋转

cube.transform.rotation *= Quaternion.Euler(0, rota_add, 0);
//rota_add为相应轴的旋转角度

版权声明:本文为huahhh原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。