From 4ceee84cd45e4e3ec40ebd888e41bd47a938c2d5 Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 23 Jul 2021 18:42:13 +0800 Subject: *misc --- Assets/ActionTool/ActionTool Settings.asset | 46 ++++++++++++++++ Assets/ActionTool/ActionTool Settings.asset.meta | 8 +++ Assets/ActionTool/ActionToolSettings.cs | 20 +++++++ Assets/ActionTool/ActionToolSettings.cs.meta | 11 ++++ 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 ++++ 10 files changed, 185 insertions(+), 6 deletions(-) create mode 100644 Assets/ActionTool/ActionTool Settings.asset create mode 100644 Assets/ActionTool/ActionTool Settings.asset.meta create mode 100644 Assets/ActionTool/ActionToolSettings.cs create mode 100644 Assets/ActionTool/ActionToolSettings.cs.meta create mode 100644 Assets/ActionTool/Editor/ActionToolSettingsEditor.cs create mode 100644 Assets/ActionTool/Editor/ActionToolSettingsEditor.cs.meta (limited to 'Assets/ActionTool') diff --git a/Assets/ActionTool/ActionTool Settings.asset b/Assets/ActionTool/ActionTool Settings.asset new file mode 100644 index 00000000..f1247575 --- /dev/null +++ b/Assets/ActionTool/ActionTool Settings.asset @@ -0,0 +1,46 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a4c92544e0489b499e3339f34c1ff00, type: 3} + m_Name: ActionTool Settings + m_EditorClassIdentifier: + eventNames: + - EventCamera_Zoom + - EventCamera_Shake + - EventCamera_Blur + - EventCamera_WhiteOut + - EventMesh_AfterImage + - EventMesh_Fade + - EventMesh_Gloss + - EventEnv_Dark + - EventEnv_Exposure + - EventUI_Drift + - EventUI_Blur + - EventProjectile + - EventEffect + - EventSound + - EventBulletTime + eventColors: + - {r: 0, g: 0, b: 0, a: 1} + - {r: 0, g: 0, b: 0, a: 1} + - {r: 0, g: 0, b: 0, a: 1} + - {r: 0, g: 0, b: 0, a: 1} + - {r: 0, g: 0, b: 0, a: 1} + - {r: 0, g: 0, b: 0, a: 1} + - {r: 0, g: 0, b: 0, a: 1} + - {r: 0, g: 0, b: 0, a: 1} + - {r: 0, g: 0, b: 0, a: 1} + - {r: 0, g: 0, b: 0, a: 1} + - {r: 0.6037736, g: 0.3275187, b: 0.5568827, a: 1} + - {r: 0.9528302, g: 0.013483422, b: 0.013483422, a: 1} + - {r: 1, g: 0, b: 0.9345741, a: 1} + - {r: 0, g: 0, b: 0, a: 1} + - {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/ActionTool/ActionTool Settings.asset.meta b/Assets/ActionTool/ActionTool Settings.asset.meta new file mode 100644 index 00000000..4a7f2686 --- /dev/null +++ b/Assets/ActionTool/ActionTool Settings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ad7c850066198a844a2c34bb5ee73fc8 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ActionTool/ActionToolSettings.cs b/Assets/ActionTool/ActionToolSettings.cs new file mode 100644 index 00000000..62f79ac4 --- /dev/null +++ b/Assets/ActionTool/ActionToolSettings.cs @@ -0,0 +1,20 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(fileName = "ActionTool Settings")] +public class ActionToolSettings : ScriptableObject +{ + public List eventNames = new List(); + public List eventColors = new List(); + + public Color GetColor(string eventName) + { + if(eventNames.Contains(eventName)) + { + return eventColors[eventNames.IndexOf(eventName)]; + } + return Color.black; + } + +} diff --git a/Assets/ActionTool/ActionToolSettings.cs.meta b/Assets/ActionTool/ActionToolSettings.cs.meta new file mode 100644 index 00000000..bd3da9fa --- /dev/null +++ b/Assets/ActionTool/ActionToolSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7a4c92544e0489b499e3339f34c1ff00 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: 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