From a13f10139d33264fc9ebc5a15c75faf16fc7757e Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 7 Jul 2021 18:47:37 +0800 Subject: +Action Tool --- Assets/ActionTool/Editor/ActionEditor.cs | 120 +++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 Assets/ActionTool/Editor/ActionEditor.cs (limited to 'Assets/ActionTool/Editor/ActionEditor.cs') diff --git a/Assets/ActionTool/Editor/ActionEditor.cs b/Assets/ActionTool/Editor/ActionEditor.cs new file mode 100644 index 00000000..90c8bfc9 --- /dev/null +++ b/Assets/ActionTool/Editor/ActionEditor.cs @@ -0,0 +1,120 @@ +using System.IO; +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +namespace ActionTool +{ + + public class ActionEditor : EditorWindow + { + [MenuItem("Custom/ActionTool/Open")] + static void OpenTools() + { + ActionManager.AnimationWindow = GetWindow(); + } + + private string m_SearchText; + + public void OnEnable() + { + + } + + public void OnDisable() + { + } + + public void OnGUI() + { + GUILayout.Space(5); + GUI_SelectUnit(); + GUILayout.Space(5); + GUI_AnimationList(); + GUILayout.Space(5); + } + + private void GUI_SelectUnit() + { + if(ActionManager.CurrentUnit == null) + { + EditorGUILayout.HelpBox("选择角色prefab", MessageType.Warning); + } + + GUILayout.BeginHorizontal(); + + GameObject selectObj = EditorGUILayout.ObjectField(ActionManager.CurrentUnit, typeof(GameObject), false, GUILayout.Width(position.width - 160)) as GameObject; + + if(selectObj != ActionManager.CurrentUnit) + { + ActionManager.OnSelectObj(selectObj); + } + + if (GUILayout.Button("Select", GUILayout.Width(70))) + { + + } + + if (GUILayout.Button("Reimport", GUILayout.Width(70))) + { + + } + + GUILayout.EndHorizontal(); + } + + private Vector2 m_AnimtionListScroll; + private void GUI_AnimationList() + { + if (!ActionManager.HasSelectObj()) + return; + + string unitName = ActionManager.GetUnitName(); + + EditorGUILayout.LabelField("Animation List"); + + m_SearchText = GUILayout.TextField(m_SearchText, "SearchTextField", GUILayout.Width(position.width - 20)).ToLower(); + + string animFolder = ActionManager.s_AnimFolder + unitName + "/"; + + string[] animfiles = Directory.GetFiles(animFolder); + + if (animfiles != null && animfiles.Length > 0) + { + GUIStyle style = GUI.skin.GetStyle("Button"); + TextAnchor prevAnchor = style.alignment; + TextClipping prevClipping = style.clipping; + bool prevRichText = style.richText; + style.alignment = TextAnchor.MiddleCenter; + style.clipping = TextClipping.Overflow; + style.richText = true; + + m_AnimtionListScroll = EditorGUILayout.BeginScrollView(m_AnimtionListScroll); + + for (int i = 0; i < animfiles.Length; ++i) + { + string file = animfiles[i]; + if (file.Contains(".meta")) + continue; + string animName = Path.GetFileNameWithoutExtension(file); + bool show = m_SearchText == string.Empty || m_SearchText == "" || animName.ToLower().Contains(m_SearchText); + if (!show) + continue; + bool bChecked = ActionManager.CurrentAnimationName == animName; + bool check = GUILayout.Toggle(bChecked, animName, style, GUILayout.Height(15)); + if (check && ActionManager.CurrentAnimationName != animName) + ActionManager.OnSelectAnimation(animName); + } + + EditorGUILayout.EndScrollView(); + + style.alignment = prevAnchor; + style.clipping = prevClipping; + style.richText = prevRichText; + } + + } + + } +} \ No newline at end of file -- cgit v1.1-26-g67d0