private void DrawLeftPanel() { GUILayout.BeginVertical(EditorStyles.toolbar, GUILayout.Width(m_Width)); GUILayout.Label(m_Fsm.gameObject.name, EditorStyles.toolbarButton); // EditorGUILayout.Foldout(true, "Events"); int eventNameCount = m_Fsm.EventNameCount; for (int i = 0; i < eventNameCount; i++) { string index = "[" + i.ToString() + "]"; string eventName = m_Fsm.GetEventName(i); Rect hRect = EditorGUILayout.BeginHorizontal(); GUILayout.Label(index, GUILayout.Width(48)); hRect.width -= 48; hRect.x += 48; if (m_SelectingEventNameIndex == i) { EventType type = Event.current.type; KeyCode keyCode = Event.current.keyCode; bool mouseContains = hRect.Contains(Event.current.mousePosition); if ((type == EventType.KeyDown && (keyCode == KeyCode.Return || keyCode == KeyCode.KeypadEnter)) || (type == EventType.MouseDown && !mouseContains)) { if (!m_Fsm.ContainsEventName(m_SelectingEventName)) { m_Fsm.SetEventName(i, m_SelectingEventName); } m_SelectingEventNameIndex = -1; m_SelectingEventName = ""; } m_SelectingEventName = EditorGUILayout.TextField(m_SelectingEventName); } else if (GUILayout.Button(eventName, EditorStyles.label)) { m_SelectingEventNameIndex = i; m_SelectingEventName = eventName; } // EditorGUI.BeginChangeCheck(); // GUILayout.TextField(eventName); EditorGUILayout.EndHorizontal(); } GUILayout.EndVertical(); }