summaryrefslogtreecommitdiff
path: root/Assets/ActionTool/Editor
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ActionTool/Editor')
-rw-r--r--Assets/ActionTool/Editor/ActionColliderEditor.cs40
-rw-r--r--Assets/ActionTool/Editor/ActionEditorStyles.cs6
-rw-r--r--Assets/ActionTool/Editor/ActionManager.cs11
-rw-r--r--Assets/ActionTool/Editor/ActionPreviewEditor.cs33
4 files changed, 58 insertions, 32 deletions
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<SceneView>();
+ }
+
+ 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<ActionColliderEditor>(true);
- if(frame != null)
+ if (frame != null)
{
- ActionData action = ActionManager.actionData;
+ ColliderWindow = EditorWindow.GetWindow<ActionColliderEditor>(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)
{