Unity的C#编程教程_8_Quaternions and Euler Angles(四元数和欧拉角)

  • 对初学者来说,就是怎么控制旋转
  • 新建项目,打开默认场景,可以看到 Main Camera 的 Rotation 中 X,Y,Z 都为 0
  • 这 3 个值代表着绕哪个轴旋转
  • x 是左右贯穿的轴,y 是上下贯穿的轴,z 是前后贯穿的轴
  • 如果在上面坐标轴选择的是 Local,那在改变数值的时候,你可以看到坐标轴的对应变化
  • 相对的角度指的是 Local 坐标轴相对 Global 全局坐标轴的角度

  • Quaternions 是个四元组,包含 x,y,z,w,由于Unity为了可读性更好,所以在 Inspector 窗口中转成了欧拉角的数据,更直观和容易理解
  • 但是,我们建议处理旋转的时候,一定要使用 Quaternions,而不要使用 Euler Angles
  • 原因在于 Gimbal Lock,在一个三维的 3 Gimbal 机制中会丢失自由度
  • 比如沿着 x 轴旋转 90 度,这时候 y 轴与原先的 z 轴重合(指向相同),z 轴与原先的 y 轴重合(指向相反),这时候我们调整 y 轴的欧拉角和 z 轴的欧拉角数值会发现,都是绕着原来的 y 轴在转动,说明少了一个自由度,破坏了旋转
  • 所以我们在设定旋转的时候,用 Quaternions ,而 Unity 会将其转化成欧拉角表示出来,让我们看得清楚
Tags: