UnityEditor.HandleUtility.DistanceToLine C# (CSharp) Method

DistanceToLine() public static method

Pixel distance from mouse pointer to line.

public static DistanceToLine ( Vector3 p1, Vector3 p2 ) : float
p1 Vector3
p2 Vector3
return float
        public static float DistanceToLine(Vector3 p1, Vector3 p2)
        {
            p1 = (Vector3) WorldToGUIPoint(p1);
            p2 = (Vector3) WorldToGUIPoint(p2);
            float num = DistancePointLine((Vector3) Event.current.mousePosition, p1, p2);
            if (num < 0f)
            {
                num = 0f;
            }
            return num;
        }

Usage Example

        internal static void ArrowHandleCap(int controlID, Vector3 position, Quaternion rotation, float size, EventType eventType, Vector3 coneOffset)
        {
            switch (eventType)
            {
            case (EventType.Layout):
            {
                Vector3 direction = rotation * Vector3.forward;
                HandleUtility.AddControl(controlID, HandleUtility.DistanceToLine(position, position + (direction + coneOffset) * size * .9f));
                HandleUtility.AddControl(controlID, HandleUtility.DistanceToCircle(position + (direction + coneOffset) * size, size * .2f));
                break;
            }

            case (EventType.Repaint):
            {
                Vector3 direction = rotation * Vector3.forward;
                ConeHandleCap(controlID, position + (direction + coneOffset) * size, Quaternion.LookRotation(direction), size * .2f, eventType);
                Handles.DrawLine(position, position + (direction + coneOffset) * size * .9f, false);
                break;
            }
            }
        }