public static void MatrixDeCompose(Matrix4x4 m, out Vector3 pos, out Vector3 scale, out Quaternion quat)
{
//quat
Vector3 vf = m.MultiplyVector(Vector3.forward);
Vector3 vu = m.MultiplyVector(Vector3.up);
quat = Quaternion.LookRotation(vf, vu);
//pos
pos = new Vector3(m.m03, m.m13, m.m23);
//去掉旋转和偏移
m.m03 = 0; m.m13 = 0; m.m23 = 0;
Matrix4x4 im = Matrix4x4.TRS(Vector3.zero, quat, Vector3.one);
m *= im.inverse;
//scale
scale = new Vector3(m.m00, m.m11, m.m22);
}
public static byte[] getBytes(Bounds bound)