Beispiel #1
0
        public static void ApplyProjectionMatrix(Camera camera, Matrix4x4 projectionMatrix)
        {
            float fov, aspect, zNear, zFar;

            Matrix4x4Utility.GetProjectionParameters(projectionMatrix, out fov, out aspect, out zNear, out zFar);
            camera.fieldOfView   = fov;
            camera.aspect        = aspect;
            camera.nearClipPlane = zNear;
            camera.farClipPlane  = zFar;
            camera.ResetProjectionMatrix();
        }
Beispiel #2
0
        public static void SetLocalToParentMatrix(Transform transform, Matrix4x4 localToParentMatrix)
        {
            var pos   = Matrix4x4Utility.GetPosition(localToParentMatrix);
            var rot   = Matrix4x4Utility.GetRotation(localToParentMatrix);
            var scale = new Vector3();

            var right = Matrix4x4Utility.GetRight(localToParentMatrix);

            scale.x = Vector3.Dot(rot * Vector3.right, right);

            var up = Matrix4x4Utility.GetUp(localToParentMatrix);

            scale.y = Vector3.Dot(rot * Vector3.up, up);

            var forward = Matrix4x4Utility.GetForward(localToParentMatrix);

            scale.z = Vector3.Dot(rot * Vector3.forward, forward);

            transform.localPosition = pos;
            transform.localRotation = rot;
            transform.localScale    = scale;
        }
Beispiel #3
0
 public static void SetLocalToWorldMatrix(Transform transform, Matrix4x4 localToWorldMatrix)
 {
     transform.position   = Matrix4x4Utility.GetPosition(localToWorldMatrix);
     transform.rotation   = Matrix4x4Utility.GetRotation(localToWorldMatrix);
     transform.localScale = Vector3.one;
 }