private static void OnEndNewTransitionEvent()
 {
     if (StateTransitionGUI.startNewTranstion)
     {
         Event e = Event.current;
         if (e.type == EventType.MouseMove)
         {
             StateTransitionGUI.toPosition = StateMachineUtils.MousePos2MachineGridPos(e.mousePosition);
             e.Use();
         }
         if (e.isMouse)
         {
             if (e.button == 0)
             {
                 foreach (var item in MachineStateGUIDataControl.allMachineStateGUI)
                 {
                     if (StateMachineUtils.MachineGridRectContainsMousePos(e.mousePosition, item.GUIRect))
                     {
                         MachineDataController.AddNewTransitionGUI(StateTransitionGUI.startPositionMs, item.state);
                         break;
                     }
                 }
                 StateTransitionGUI.startNewTranstion = false;
                 e.Use();
                 StateMachineEditorWindow.Instance.wantsMouseMove = false;
             }
             else if (e.button == 1)
             {
                 StateTransitionGUI.startNewTranstion = false;
                 e.Use();
                 StateMachineEditorWindow.Instance.wantsMouseMove = false;
             }
         }
     }
 }
        public static StateTransitionArrowLine FindClosestStateTransitionArrowLine(Vector2 mousePosition)
        {
            Vector2 v2 = StateMachineUtils.MousePos2MachineGridPos(mousePosition);

            StateTransitionArrowLine result = null;
            float lenth = float.PositiveInfinity;

            foreach (var item in allStateTransitionArrowLineList)
            {
                float temoLenth;
                if (item.IsLineSelf)
                {
                    temoLenth = Vector2.Distance(item.LineSelfOneTrianglePoints[3], v2);
                }
                else
                {
                    temoLenth = HandleUtility.DistancePointLine(v2, item.UseFormLinePosition, item.UseToLinePosition);
                }

                if (temoLenth < lenth && temoLenth < 10)
                {
                    lenth  = temoLenth;
                    result = item;
                }
            }

            return(result);
        }
        private static void AddNewMachineStateGUIOnMouseMenu(object mousePos)
        {
            Vector2 mPos = (Vector2)mousePos;

            mPos = StateMachineUtils.MousePos2MachineGridPos(mPos);
            MachineDataController.AddNewMachineStateGUI(mPos);
            Debug.Log("AddNewMachineStateGUIOnMouseMenu :" + mPos);
        }
        private static void OnEndDragStateMachine()
        {
            if (isDragingStateItem)
            {
                Event e = Event.current;

                if (e.button == 0 && e.type == EventType.mouseDrag)
                {
                    Vector2 pos = StateMachineUtils.MousePos2MachineGridPos(e.mousePosition);
                    pos = pos - MachineStateGUI.size / 2f;
                    dragItem.position = pos;
                    e.Use();
                }
                else
                {
                    isDragingStateItem = false;
                    dragItem           = null;
                    StateMachineEditorWindow.Instance.wantsMouseMove = false;
                }
            }
        }