UnityEditor.HandleUtility.CalcLineTranslation C# (CSharp) Méthode

CalcLineTranslation() public static méthode

Map a mouse drag onto a movement along a line in 3D space.

public static CalcLineTranslation ( Vector2 src, Vector2 dest, Vector3 srcPosition, Vector3 constraintDir ) : float
src Vector2 The source point of the drag.
dest Vector2 The destination point of the drag.
srcPosition Vector3 The 3D position the dragged object had at src ray.
constraintDir Vector3 3D direction of constrained movement.
Résultat float
        public static float CalcLineTranslation(Vector2 src, Vector2 dest, Vector3 srcPosition, Vector3 constraintDir)
        {
            srcPosition = Handles.matrix.MultiplyPoint(srcPosition);
            constraintDir = Handles.matrix.MultiplyVector(constraintDir);
            float num = 1f;
            Vector3 forward = Camera.current.transform.forward;
            if (Vector3.Dot(constraintDir, forward) < 0f)
            {
                num = -1f;
            }
            Vector3 vector2 = constraintDir;
            vector2.y = -vector2.y;
            Camera current = Camera.current;
            Vector2 vector3 = EditorGUIUtility.PixelsToPoints(current.WorldToScreenPoint(srcPosition));
            Vector2 vector4 = EditorGUIUtility.PixelsToPoints(current.WorldToScreenPoint(srcPosition + ((Vector3) (constraintDir * num))));
            Vector2 vector5 = dest;
            Vector2 vector6 = src;
            if (vector3 == vector4)
            {
                return 0f;
            }
            vector5.y = -vector5.y;
            vector6.y = -vector6.y;
            float num3 = GetParametrization(vector6, vector3, vector4);
            return ((GetParametrization(vector5, vector3, vector4) - num3) * num);
        }