目录
一. 旋转
在 Unity 中,物体的旋转可以通过欧拉角和四元数来表示和操作。
欧拉角:
- 由三个角度值(通常表示为
x
、y
、z
)来定义旋转。 - 直观易懂,但可能会出现万向锁问题。
四元数:
- 由四个值
x
、y
、z
、w
组成。 - 数学上更复杂,但能避免万向锁,并且在插值等操作上更稳定。
Unity 中的相关 API:
- 通过欧拉角设置旋转:
transform.eulerAngles = new Vector3(30f, 60f, 90f);
- 获取欧拉角:
Vector3 eulerAngles = transform.eulerAngles;
- 通过四元数设置旋转:
transform.rotation = Quaternion.Euler(30f, 60f, 90f);
- 获取四元数:
Quaternion rotation = transform.rotation;
在实际应用中,例如制作角色的转向动画时,可以使用
Quaternion.Slerp
来实现平滑的转向效果;在物理模拟中,可能会用到Quaternion.RotateTowards
来逐渐调整物体的朝向。
Quaternion.LookRotation
:
- 用途:根据给定的方向向量创建一个旋转四元数,使得对象朝向该方向。
- 示例:
Quaternion lookRotation = Quaternion.LookRotation(Vector3.forward);
Quaternion.AngleAxis
: