三种变换方式:
- transform component
方法- Translate():平移,可以指定按照世界坐标系平移,或局部坐标系平移
- Rotate():旋转,绕指定的轴旋转给定角度,旋转轴可以在世界坐标系中指定也可以在局部坐标系中指定
- RotateAround() :绕世界坐标系中的坐标轴和旋转中心旋转
属性 - position:物体在世界坐标系中的坐标
- localPosition:物体在局部坐标系中的坐标
- rotation:以四元数表示的物体的旋转
- localScale:局部坐标系下的缩放
- Quaternion
四元数由$(x,y,z,w)$指定。给定点$p$,旋转变换为$Q$,变换后的点为
p' =Qp
Unity3D中已经对运算符进行了重载
Quaternion q = new Quaternion(x, y, z, w)
Quaternion q = Quaternion.Euler(x, y, z); //Euler angle
Quaternion q = Quaternion.FromToRotation(from, to);
Vector3 p;
Vector3 p0 = q * p;
-
Matrix4x4
矩阵表示,点或向量的表示为列向量。因此对点$p$进行旋转变换时,
p'=MpMatrix4x4.LookAt(from, to, up); Matrix4x4.Rotate(Quaternion q); Matrix4x4.Scale(Vector3 scale); Matrix4x4.Translate(Vector3 offset); Matrix4x4.Ortho(); Matrix4x4.Perspective();