Matrix4x4 matrix = transform.localToWorldMatrix;
한 위치를 로컬 공간에서 월드 공간으로 변환하는 행렬을 나타낸다.
Quaternion rot = Quaternion.Euler(45, 0, 45);
Vector3 tran = new Vector3(2, 1, 5);
Vector3 scal = new Vector3(10, 10, 10);
worldMat = Matrix4x4.TRS(tran, rot, scal);
TRS 연산을 해주는 함수
worldMat = Matrix4x4.Translate(new Vector3(2, 1, 5)) Matrix4x4.Rotate(rot) Matrix4x4.Scale(new Vector3(10,10,10));
이동행렬, 회전행렬, 크기변환행렬로 TRS 연산
Quaternion rot = Quaternion.Euler(45, 0, 45);
오일러각이 (45,0,45)인 값을 쿼터니언으로 변환해서 사용하겠다.
Vector3 position = matrix.GetColumn(3);
Debug.Log("=== Position ===");
Debug.Log(position);
Quaternion rotation = Quaternion.LookRotation(
matrix.GetColumn(2),
matrix.GetColumn(1)
);
Debug.Log("=== Rotation ===");
Debug.Log(rotation.eulerAngles);
Debug.Log("=== Scale ===");
Vector3 scale = new Vector3(
matrix.GetColumn(0).magnitude,
matrix.GetColumn(1).magnitude,
matrix.GetColumn(2).magnitude
);
Debug.Log(scale);