private static void MouseSelectObject() { Event e = Event.current; if (e.button == 0 && e.type == EventType.MouseDown) { if (StateMachineBGGUI.controlWindowRange.Contains(e.mousePosition)) { bool isSelect = false; foreach (var item in MachineStateGUIDataControl.allMachineStateGUI) { if (StateMachineUtils.MachineGridRectContainsMousePos(e.mousePosition, item.GUIRect)) { isSelect = true; SelectObjectController.SelectItemObject(item); break; } } if (!isSelect) { StateTransitionArrowLine line = StateTransitionArrowLineDataControl.FindClosestStateTransitionArrowLine(e.mousePosition); if (line) { isSelect = true; SelectObjectController.SelectItemObject(line); } } if (isSelect == false) { SelectObjectController.SelectObjectCancel(); } e.Use(); } } }
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; } } } }
/// <summary> /// 鼠标右键空白区域 /// </summary> public static void MouseBGEmptyRightClikEvent() { Event e = Event.current; if (e.button == 1 && e.type == EventType.ContextClick) { if (StateMachineBGGUI.controlWindowRange.Contains(e.mousePosition)) { bool isInUIPart = false; foreach (var item in MachineStateGUIDataControl.allMachineStateGUI) { if (StateMachineUtils.MachineGridRectContainsMousePos(e.mousePosition, item.GUIRect)) { isInUIPart = true; break; } } if (!isInUIPart) { GenericMenu menu = new GenericMenu(); menu.AddItem(new GUIContent("New State"), false, AddNewMachineStateGUIOnMouseMenu, e.mousePosition); menu.AddSeparator(""); menu.ShowAsContext(); e.Use(); } } } }
public static void OnMachineStateMouseRightClickMenu() { if (StateTransitionGUI.startNewTranstion) { return; } Event e = Event.current; if (e.button == 1 && e.type == EventType.ContextClick) { foreach (var item in MachineStateGUIDataControl.allMachineStateGUI) { if (StateMachineUtils.MachineGridRectContainsMousePos(e.mousePosition, item.GUIRect)) { if (!SelectObjectController.IsSelectThis(item)) { SelectObjectController.SelectItemObject(item); } else { GenericMenu menu = new GenericMenu(); menu.AddItem(new GUIContent("New Transition"), false, NewTransitionStart, item.state); menu.AddItem(new GUIContent("Delete"), false, SelectObjectController.DeleteSelectObjet); menu.AddSeparator(""); menu.ShowAsContext(); } e.Use(); break; } } } }
private static void OnBeginDragStateMachine() { if (isDragingStateItem) { return; } Event e = Event.current; if (e.button == 0 && e.type == EventType.mouseDrag) { foreach (var item in MachineStateGUIDataControl.allMachineStateGUI) { if (StateMachineUtils.MachineGridRectContainsMousePos(e.mousePosition, item.GUIRect)) { dragItem = item; isDragingStateItem = true; StateMachineEditorWindow.Instance.wantsMouseMove = true; break; } } } }