Unity3d--Transform

三种变换方式:

  • 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'=Mp

       Matrix4x4.LookAt(from, to, up);
       Matrix4x4.Rotate(Quaternion q);
       Matrix4x4.Scale(Vector3 scale);
       Matrix4x4.Translate(Vector3 offset);
       Matrix4x4.Ortho();
       Matrix4x4.Perspective();
    

你可能感兴趣的:(Unity3d--Transform)