问题描述
- 需要从一个4*4变换矩阵中获取Scale,Rotation,Position信息,其中矩阵格式为(0,3)(1,3)(2,3)表示的是Position,所以Position信息直接去这三位就好了。下面代码是获取Scale和Rotation的。
代码
public Vector3 ExtractScale (Matrix4x4 matrix)
{
Vector3 scale;
scale.x = new Vector4 (matrix.m00, matrix.m10, matrix.m20, matrix.m30).magnitude;
scale.y = new Vector4 (matrix.m01, matrix.m11, matrix.m21, matrix.m31).magnitude;
scale.z = new Vector4 (matrix.m02, matrix.m12, matrix.m22, matrix.m32).magnitude;
return scale;
}
private Quaternion ExtractRotation (Matrix4x4 matrix)
{
return Quaternion.LookRotation (matrix.GetColumn (2), matrix.GetColumn (1));
}