From d373067ce7982c14040274f9eab8ad9a1c50c5f1 Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 10 Jul 2021 11:58:54 +0800 Subject: *misc --- Assets/ActionTool/Editor/ActionColliderEditor.cs | 40 +++++++++++++++++------- Assets/ActionTool/Editor/ActionEditorStyles.cs | 6 ++-- Assets/ActionTool/Editor/ActionManager.cs | 11 ++++--- Assets/ActionTool/Editor/ActionPreviewEditor.cs | 33 +++++++++++-------- 4 files changed, 58 insertions(+), 32 deletions(-) (limited to 'Assets/ActionTool/Editor') diff --git a/Assets/ActionTool/Editor/ActionColliderEditor.cs b/Assets/ActionTool/Editor/ActionColliderEditor.cs index 57c060fa..0c312806 100644 --- a/Assets/ActionTool/Editor/ActionColliderEditor.cs +++ b/Assets/ActionTool/Editor/ActionColliderEditor.cs @@ -9,18 +9,29 @@ namespace ActionTool // 编辑collider帧 public class ActionColliderEditor : EditorWindow { + EditorWindow sceneView; private void OnEnable() { - titleContent = new GUIContent("Collider Editor"); - } + titleContent = new GUIContent("Collider Editor"); + maxSize = new Vector2(300, 150); + minSize = maxSize; - private void OnDisable() + if(!sceneView) + sceneView = EditorWindow.GetWindow(); + } + + private void OnDisable() { - ActionManager.OnSelectColliderFrame(null); + // sceneView = null; + ActionManager.OnSelectColliderFrame(null); } - private void OnGUI() + private void Update() + { + } + + private void OnGUI() { var frame = ActionManager.editColliderFrame; if (frame == null) @@ -29,12 +40,11 @@ namespace ActionTool return; } - Rect pos = position; - pos.width = 300; - pos.height = 150; - position = pos; + GUI.changed = false; - EditorGUILayout.BeginHorizontal(); + GUILayout.Space(5); + + EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("frame: "); EditorGUILayout.LabelField(frame.frame.ToString()); EditorGUILayout.EndHorizontal(); @@ -59,6 +69,14 @@ namespace ActionTool ActionManager.DeleteCurFrame(); } GUI.color = prevColor; + + if (GUI.changed) + { + if (sceneView != null) + sceneView.Repaint(); + if (ActionManager.PreviewWindow != null) + ActionManager.PreviewWindow.Repaint(); + } } } -} \ No newline at end of file +} \ No newline at end of file diff --git a/Assets/ActionTool/Editor/ActionEditorStyles.cs b/Assets/ActionTool/Editor/ActionEditorStyles.cs index 1943a74f..fd940b33 100644 --- a/Assets/ActionTool/Editor/ActionEditorStyles.cs +++ b/Assets/ActionTool/Editor/ActionEditorStyles.cs @@ -47,9 +47,9 @@ namespace ActionTool InitStyle(out boxToggle, EditorStyles.miniButtonLeft, s => { s.fontSize = 8; s.normal.textColor = Color.white; - //s.normal.background = null; - s.active.textColor = Color.white; - //s.active.background = null; + s.onNormal.textColor = Color.white; + s.active.textColor = Color.white; + s.onActive.textColor = Color.white; }); InitStyle(out keyFrameButton, GUI.skin.button, s => { s.fontSize = 8; diff --git a/Assets/ActionTool/Editor/ActionManager.cs b/Assets/ActionTool/Editor/ActionManager.cs index 29384821..89e04c80 100644 --- a/Assets/ActionTool/Editor/ActionManager.cs +++ b/Assets/ActionTool/Editor/ActionManager.cs @@ -293,7 +293,7 @@ namespace ActionTool return; } ColliderData box = new ColliderData(ColliderBox.EColliderType.HurtBox, ColliderBox.Pivot.MiddleBottom); - animationData.AddBox(animationData.hurtBoxes, box); + animationData.AddBox(ref animationData.hurtBoxes, box); } public static void NewHitBox() @@ -304,7 +304,7 @@ namespace ActionTool return; } ColliderData box = new ColliderData(ColliderBox.EColliderType.HitBox, ColliderBox.Pivot.MiddleCenter); - animationData.AddBox(animationData.hitBoxes, box); + animationData.AddBox(ref animationData.hitBoxes, box); } public static void DeleteCurBox() @@ -356,11 +356,12 @@ namespace ActionTool public static void OnSelectColliderFrame(ColliderData.ColliderFrame frame) { s_CurEditColliderFrame = frame; - ColliderWindow = EditorWindow.GetWindow(true); - if(frame != null) + if (frame != null) { - ActionData action = ActionManager.actionData; + ColliderWindow = EditorWindow.GetWindow(true); + + ActionData action = ActionManager.actionData; float normaltime = frame.frame / action.totalFrame; action.curAnimTimeNormal = normaltime; } diff --git a/Assets/ActionTool/Editor/ActionPreviewEditor.cs b/Assets/ActionTool/Editor/ActionPreviewEditor.cs index d236770e..8e620d54 100644 --- a/Assets/ActionTool/Editor/ActionPreviewEditor.cs +++ b/Assets/ActionTool/Editor/ActionPreviewEditor.cs @@ -52,7 +52,6 @@ namespace ActionTool m_UITextureNewHurtBox = (Texture)Resources.Load("hurtbox"); m_UITextureNewHitBox = (Texture)Resources.Load("hitbox"); - styles = ActionEditorStyles.Get(); } void Update() @@ -67,7 +66,9 @@ namespace ActionTool private void OnGUI() { - if (ActionManager.CurrentAnimationName == null || ActionManager.CurrentAnimationName == "") + styles = ActionEditorStyles.Get(); + + if (ActionManager.CurrentAnimationName == null || ActionManager.CurrentAnimationName == "") { EditorGUILayout.HelpBox("选择动画", MessageType.Warning); return; @@ -338,12 +339,17 @@ namespace ActionTool void DrawBox(int index, ColliderData box, float y, Color c) { ActionData action = ActionManager.actionData; - Color prevColor = GUI.color; - GUI.color = c; - Rect rect = new Rect(kTimeLineViewXOffset - 18, y - 1, 17, kFrameHeight); + + Color prevColor = GUI.backgroundColor; + GUI.backgroundColor = c; + Rect rect = new Rect(kTimeLineViewXOffset - 17, y - 1, 17, kFrameHeight); bool selected = ActionManager.colliderData == box; - bool select = GUI.Toggle(rect, selected, index.ToString(), styles.boxToggle); - if (select) + bool select = GUI.Toggle(rect, selected, index.ToString(), styles.boxToggle); + GUI.backgroundColor = prevColor; + + prevColor = GUI.color; + GUI.color = c; + if (select) { ActionManager.OnSelectBox(box); @@ -403,7 +409,8 @@ namespace ActionTool GUI.color = prevColor; } - void DrawBoxFrameMenuItem() + GenericMenu _newFrameMenu; + void DrawBoxFrameMenuItem() { Event e = Event.current; if (e.button != 1 || !e.isMouse || e.type != EventType.MouseDown) @@ -427,16 +434,16 @@ namespace ActionTool param.frame = frame; if(ActionManager.colliderData != box) ActionManager.OnSelectBox(box); - GenericMenu menu = new GenericMenu(); - menu.AddItem(new GUIContent("New Frame"), false, ActionManager.AddNewBoxFrame, param); - menu.AddItem(new GUIContent("Delete"), false, ActionManager.DeleteBoxFrame, param); - menu.ShowAsContext(); + _newFrameMenu = new GenericMenu(); + _newFrameMenu.AddItem(new GUIContent("New Frame"), false, ActionManager.AddNewBoxFrame, param); + _newFrameMenu.AddItem(new GUIContent("Delete"), false, ActionManager.DeleteBoxFrame, param); + _newFrameMenu.ShowAsContext(); } else { Debug.LogError("[ActionTool] 错误的点击"); } - } + } void GUI_DrawSeperateLine(float x, float y, float height) { -- cgit v1.1-26-g67d0