From 4ceee84cd45e4e3ec40ebd888e41bd47a938c2d5 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 23 Jul 2021 18:42:13 +0800 Subject: *misc --- Assets/ActionTool/Editor/ActionEditorStyles.cs | 2 +- Assets/ActionTool/Editor/ActionEventEditor.cs | 6 +-- Assets/ActionTool/Editor/ActionManager.cs | 5 ++ Assets/ActionTool/Editor/ActionPreviewEditor.cs | 20 ++++++- .../ActionTool/Editor/ActionToolSettingsEditor.cs | 62 ++++++++++++++++++++++ .../Editor/ActionToolSettingsEditor.cs.meta | 11 ++++ 6 files changed, 100 insertions(+), 6 deletions(-) create mode 100644 Assets/ActionTool/Editor/ActionToolSettingsEditor.cs create mode 100644 Assets/ActionTool/Editor/ActionToolSettingsEditor.cs.meta (limited to 'Assets/ActionTool/Editor') diff --git a/Assets/ActionTool/Editor/ActionEditorStyles.cs b/Assets/ActionTool/Editor/ActionEditorStyles.cs index a7ec4b88..d4bd37cd 100644 --- a/Assets/ActionTool/Editor/ActionEditorStyles.cs +++ b/Assets/ActionTool/Editor/ActionEditorStyles.cs @@ -45,7 +45,7 @@ namespace ActionTool InitStyle(out textBoldBig, GUI.skin.label, s => { s.fontStyle = FontStyle.Bold; - s.fontSize = 20; + s.fontSize = 18; s.alignment = TextAnchor.MiddleCenter; }); diff --git a/Assets/ActionTool/Editor/ActionEventEditor.cs b/Assets/ActionTool/Editor/ActionEventEditor.cs index 82580b17..8edcd1c2 100644 --- a/Assets/ActionTool/Editor/ActionEventEditor.cs +++ b/Assets/ActionTool/Editor/ActionEventEditor.cs @@ -48,9 +48,9 @@ namespace ActionTool GUILayout.Space(2); - EditorGUILayout.LabelField(eventName, styles.textBoldBig, GUILayout.Height(30)); + EditorGUILayout.LabelField(eventName, styles.textBoldBig, GUILayout.Height(25)); - GUILayout.Space(5); + GUILayout.Space(2); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Save")) @@ -148,7 +148,7 @@ namespace ActionTool bool GUI_Bool(bool value) { Rect rect = EditorGUILayout.GetControlRect(); - return GUI.Toggle(rect, value, ""); + return GUI.Toggle(rect, value, "Check"); } } diff --git a/Assets/ActionTool/Editor/ActionManager.cs b/Assets/ActionTool/Editor/ActionManager.cs index cc8a7dfd..094e28fc 100644 --- a/Assets/ActionTool/Editor/ActionManager.cs +++ b/Assets/ActionTool/Editor/ActionManager.cs @@ -12,12 +12,15 @@ namespace ActionTool public static string s_Controller = "Assets/ActionTool/controller_temp.controller"; public static string s_AnimationDataFolder = "Assets/Data/AnimationData/"; static string s_RootMotionDataFolder = "Assets/Data/RootMotionData/"; + static string s_SettingPath = "Assets/ActionTool/ActionTool Settings.asset"; public static ActionEditor AnimationWindow; public static ActionPreviewEditor PreviewWindow; public static ActionEventEditor EventEditWindow; public static ActionColliderEditor ColliderWindow; + public static ActionToolSettings Settings; + //规定timeline上事件的采样频率是30帧 public const int FPS = 30; @@ -218,6 +221,8 @@ namespace ActionTool s_Animator.applyRootMotion = false; s_Gizmos = unit.AddComponent(); + + Settings = AssetDatabase.LoadAssetAtPath(s_SettingPath); } public static void UpdateFrame() diff --git a/Assets/ActionTool/Editor/ActionPreviewEditor.cs b/Assets/ActionTool/Editor/ActionPreviewEditor.cs index f277ce97..f0a828fc 100644 --- a/Assets/ActionTool/Editor/ActionPreviewEditor.cs +++ b/Assets/ActionTool/Editor/ActionPreviewEditor.cs @@ -555,11 +555,27 @@ namespace ActionTool var animEvent = animEvents[i]; if (animEvent == null) continue; + + Color bgColor = Color.black; + if(ActionManager.Settings != null) + { + bgColor = ActionManager.Settings.GetColor(animEvent.type.ToString()); + } Vector2 pos = new Vector2(kTimeLineViewXOffset + frame * kFrameWidth, y); Rect frameRect = new Rect(pos.x, pos.y, kFrameWidth, kFrameHeight); bool isSelect = ActionManager.animationEvent == animEvent; - bool frameSelect = GUI.Toggle(frameRect, isSelect, "E", styles.keyFrameButton); - if(!isSelect && frameSelect) + Color prevColor = GUI.backgroundColor; + GUI.backgroundColor = bgColor; + bool frameSelect = GUI.Toggle(frameRect, isSelect, new GUIContent("", animEvent.Name), styles.keyFrameButton); + GUI.backgroundColor = prevColor; + + Rect labelRect = new Rect(pos.x - 1, pos.y + 2, kFrameWidth, kFrameHeight); + Color col = GUI.color; + GUI.color = Color.yellow; + GUI.Label(labelRect, animEvent.shortName, styles.textBold); + GUI.color = col; + + if (!isSelect && frameSelect) { ActionManager.OnSelectAnimationEvent(animEvent); } diff --git a/Assets/ActionTool/Editor/ActionToolSettingsEditor.cs b/Assets/ActionTool/Editor/ActionToolSettingsEditor.cs new file mode 100644 index 00000000..ee73f844 --- /dev/null +++ b/Assets/ActionTool/Editor/ActionToolSettingsEditor.cs @@ -0,0 +1,62 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; + +[CustomEditor(typeof(ActionToolSettings))] +public class ActionToolSettingsEditor : Editor +{ + ActionToolSettings setting; + + public void OnEnable() + { + setting = target as ActionToolSettings; + } + + public void OnDisable() + { + + } + + public override void OnInspectorGUI() + { + if (setting == null) + return; + + //foreach(var col in setting.eventColors) + //{ + // EditorGUILayout.BeginHorizontal(); + // EditorGUILayout.LabelField(col.Key.ToString()); + // Color c = EditorGUILayout.ColorField(col.Value); + // setting.eventColors[col.Key] = c; + // EditorGUILayout.EndHorizontal(); + //} + + EditorGUI.BeginChangeCheck(); + + foreach (var name in Enum.GetNames(typeof(TimelineEvent.EEventType))) + { + EditorGUILayout.BeginHorizontal(); + EditorGUILayout.LabelField(name); + Color old = setting.eventNames.Contains(name) ? setting.eventColors[setting.eventNames.IndexOf(name)] : Color.black; + Color c = EditorGUILayout.ColorField(old); + if (!setting.eventNames.Contains(name)) + { + setting.eventNames.Add(name); + setting.eventColors.Add(c); + } + setting.eventColors[setting.eventNames.IndexOf(name)] = c; + EditorGUILayout.EndHorizontal(); + } + + if(EditorGUI.EndChangeCheck()) + { + EditorUtility.SetDirty(setting); + //AssetDatabase.SaveAssets(); + //AssetDatabase.Refresh(); + } + } + +} + \ No newline at end of file diff --git a/Assets/ActionTool/Editor/ActionToolSettingsEditor.cs.meta b/Assets/ActionTool/Editor/ActionToolSettingsEditor.cs.meta new file mode 100644 index 00000000..9e1702fd --- /dev/null +++ b/Assets/ActionTool/Editor/ActionToolSettingsEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2208059a63398d941a5613752569a003 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: -- cgit v1.1-26-g67d0