From 7669c3afcbd71f06233bce12bb521c582c07ee5b Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 9 Aug 2021 08:47:48 +0800 Subject: *misc --- Assets/ActionTool/Editor/ActionEditor.cs | 81 ++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 26 deletions(-) (limited to 'Assets/ActionTool/Editor/ActionEditor.cs') diff --git a/Assets/ActionTool/Editor/ActionEditor.cs b/Assets/ActionTool/Editor/ActionEditor.cs index 072d40cc..d94806ad 100644 --- a/Assets/ActionTool/Editor/ActionEditor.cs +++ b/Assets/ActionTool/Editor/ActionEditor.cs @@ -3,6 +3,7 @@ using System.Collections; using System.Collections.Generic; using UnityEditor; using UnityEngine; +using UnityEditor.SceneManagement; namespace ActionTool { @@ -18,15 +19,16 @@ namespace ActionTool string m_SearchText = ""; ActionEditorStyles styles; ActionEditorUI ui; + int currentPickerWindow; - public void OnEnable() + public void OnEnable() { titleContent = new GUIContent("Action Editor"); - } + } public void OnDisable() { - } + } public void OnGUI() { @@ -44,34 +46,61 @@ namespace ActionTool private void GUI_SelectUnit() { - if(ActionManager.CurrentUnit == null) - { - EditorGUILayout.HelpBox("选择角色prefab", MessageType.Warning); - } - GUILayout.BeginHorizontal(); + GUILayout.BeginHorizontal(); - GameObject selectObj = EditorGUILayout.ObjectField(ActionManager.CurrentUnit, typeof(GameObject), false, GUILayout.Width(position.width - 160)) as GameObject; + GameObject selectObj = EditorGUILayout.ObjectField(ActionManager.CurrentUnit, typeof(GameObject), false, GUILayout.Width(position.width - 160)) as GameObject; - if(selectObj != ActionManager.CurrentUnit) - { - ActionManager.OnSelectObj(selectObj); - } + if (selectObj != null && selectObj != ActionManager.CurrentUnit) + { + ActionManager.OnSelectObj(selectObj); + if (ActionManager.AnimationWindow != null) + { + ActionManager.AnimationWindow.Repaint(); + } + } - if (GUILayout.Button("Select", GUILayout.Width(70))) + if (GUILayout.Button("Select", GUILayout.Width(70))) { - - } - - if (GUILayout.Button("Reimport", GUILayout.Width(70))) - { - - } - - GUILayout.EndHorizontal(); - } - - private Vector2 m_AnimtionListScroll; + currentPickerWindow = EditorGUIUtility.GetControlID(FocusType.Passive) + 100; + EditorGUIUtility.ShowObjectPicker(ActionManager.CurrentUnit, false, "l:UnitPrefab", currentPickerWindow); + } + + string commandName = Event.current.commandName; + if(/*commandName.Equals("ObjectSelectorUpdated") || */commandName.Equals("ObjectSelectorClosed")) + { + GameObject go = EditorGUIUtility.GetObjectPickerObject() as GameObject; + if (/*go != null && */ActionManager.CurrentUnit != go) + { + ActionManager.OnSelectObj(go); + this.Repaint(); + } + } + + if (GUILayout.Button("Reimport", GUILayout.Width(70))) + { + ActionManager.OnSelectObj(ActionManager.CurrentUnit); + } + + GUILayout.EndHorizontal(); + + var scene = EditorSceneManager.GetActiveScene(); + if (scene == null || scene.path != ActionManager.scenePath) + { + if(GUILayout.Button("打开ActionToolScene")) + { + EditorSceneManager.OpenScene(ActionManager.scenePath); + } + } + + if (ActionManager.CurrentUnit == null) + { + EditorGUILayout.HelpBox("选择角色prefab", MessageType.Warning); + } + + } + + private Vector2 m_AnimtionListScroll; private void GUI_AnimationList() { if (!ActionManager.HasSelectObj()) -- cgit v1.1-26-g67d0