diff options
Diffstat (limited to 'Assets/ActionTool/Editor')
-rw-r--r-- | Assets/ActionTool/Editor/ActionColliderEditor.cs | 28 | ||||
-rw-r--r-- | Assets/ActionTool/Editor/ActionManager.cs | 26 | ||||
-rw-r--r-- | Assets/ActionTool/Editor/ActionPreviewEditor.cs | 65 |
3 files changed, 100 insertions, 19 deletions
diff --git a/Assets/ActionTool/Editor/ActionColliderEditor.cs b/Assets/ActionTool/Editor/ActionColliderEditor.cs index 346cadbc..9bb77515 100644 --- a/Assets/ActionTool/Editor/ActionColliderEditor.cs +++ b/Assets/ActionTool/Editor/ActionColliderEditor.cs @@ -23,6 +23,10 @@ namespace ActionTool private void OnDisable()
{
+ ActionManager.colliderData = null;
+ ActionManager.ColliderWindow = null;
+ if(ActionManager.PreviewWindow != null)
+ ActionManager.PreviewWindow.Repaint();
}
private void Update()
@@ -46,6 +50,30 @@ namespace ActionTool GUILayout.Space(2);
+ EditorGUILayout.LabelField(collider.type.ToString() + " " + ActionManager.colliderIndex, styles.textBoldBig, GUILayout.Height(25));
+
+ GUILayout.Space(2);
+
+ EditorGUILayout.BeginHorizontal();
+ if (GUILayout.Button("Save"))
+ {
+
+ }
+ if (GUILayout.Button("Revert"))
+ {
+
+ }
+ Color prevColor = GUI.backgroundColor;
+ GUI.backgroundColor = Color.red;
+ if (GUILayout.Button("Delete"))
+ {
+ ActionManager.DeleteCurBox();
+ }
+ GUI.backgroundColor = prevColor;
+ EditorGUILayout.EndHorizontal();
+
+ GUILayout.Space(5);
+
scroll = EditorGUILayout.BeginScrollView(scroll);
Type type = collider.GetType();
diff --git a/Assets/ActionTool/Editor/ActionManager.cs b/Assets/ActionTool/Editor/ActionManager.cs index 7becca02..feefde88 100644 --- a/Assets/ActionTool/Editor/ActionManager.cs +++ b/Assets/ActionTool/Editor/ActionManager.cs @@ -89,10 +89,11 @@ namespace ActionTool public static AnimationEventBase animationEvent { get { return m_CurAnimationEvent; } }
private static ColliderData s_CurColliderData;
- public static ColliderData colliderData { get { return s_CurColliderData; } }
+ public static ColliderData colliderData { get { return s_CurColliderData; } set { s_CurColliderData = value; } }
public static ColliderData.ColliderFrame s_CurEditColliderFrame;
public static ColliderData.ColliderFrame editColliderFrame { get { return s_CurEditColliderFrame; } }
+ public static ColliderData s_CurEditFrameCollider;
private static ActionToolGizmos s_Gizmos;
public static ActionToolGizmos gizmos { get { return s_Gizmos; } }
@@ -119,6 +120,8 @@ namespace ActionTool public static string unitAnimationClipFolder { get { return unitFolder + "AnimationClip/"; } }
public static string unitDataFolder { get { return unitFolder + "UnitData/"; } }
+ public static int colliderIndex;
+
public static void OnSelectObj(GameObject obj)
{
Release();
@@ -168,7 +171,7 @@ namespace ActionTool animationData = null;
OnSelectAnimationEvent(null);
- OnSelectColliderFrame(null);
+ OnSelectColliderFrame(null, null);
OnSelectBox(null);
if (EventEditWindow) EventEditWindow.Close();
if (ColliderFrameWindow) ColliderFrameWindow.Close();
@@ -357,14 +360,17 @@ namespace ActionTool {
if (s_CurColliderData == null)
return;
- ColliderWindow = EditorWindow.GetWindow<ActionColliderEditor>(true);
+ if(ColliderWindow == null)
+ ColliderWindow = EditorWindow.GetWindow<ActionColliderEditor>(true);
}
- public static void OnSelectBox(ColliderData collider)
+ public static void OnSelectBox(ColliderData collider, int index = 0)
{
s_CurColliderData = collider;
if (ColliderWindow != null)
ColliderWindow.Repaint();
+ colliderIndex = index;
+ EditCollider();
}
public static void AddNewBoxFrame(object param)
@@ -375,7 +381,7 @@ namespace ActionTool if(data != null)
{
var frameData = data.AddFrame(frameIndex);
- OnSelectColliderFrame(frameData);
+ OnSelectColliderFrame(frameData, data);
}
}
@@ -392,19 +398,21 @@ namespace ActionTool public static void DeleteCurFrame()
{
- if (s_CurColliderData == null)
+ if (s_CurEditFrameCollider == null)
return;
if (s_CurEditColliderFrame == null)
return;
- s_CurColliderData.DeleteFrame(s_CurEditColliderFrame.frame);
+ s_CurEditFrameCollider.DeleteFrame(s_CurEditColliderFrame.frame);
+
s_CurEditColliderFrame = null;
}
- public static void OnSelectColliderFrame(ColliderData.ColliderFrame frame)
+ public static void OnSelectColliderFrame(ColliderData.ColliderFrame frame, ColliderData collider = null)
{
s_CurEditColliderFrame = frame;
+ s_CurEditFrameCollider = collider;
- if (frame != null)
+ if (frame != null)
{
ColliderFrameWindow = EditorWindow.GetWindow<ActionColliderFrameEditor>(true);
diff --git a/Assets/ActionTool/Editor/ActionPreviewEditor.cs b/Assets/ActionTool/Editor/ActionPreviewEditor.cs index ecec6dde..8b13b70a 100644 --- a/Assets/ActionTool/Editor/ActionPreviewEditor.cs +++ b/Assets/ActionTool/Editor/ActionPreviewEditor.cs @@ -28,8 +28,12 @@ namespace ActionTool Texture m_UITextureEnd;
Texture m_UITexturePrevious;
Texture m_UITextureStart;
+
Texture m_UITextureNewHurtBox;
Texture m_UITextureNewHitBox;
+ Texture m_UITextureNewThrowBox;
+ Texture m_UITextureNewBlockBox;
+ Texture m_UITextureNewDefendBox;
GUIStyle m_StyleBold;
@@ -59,7 +63,9 @@ namespace ActionTool m_UITextureStart = (Texture)Resources.Load("button_control_start");
m_UITextureNewHurtBox = (Texture)Resources.Load("hurtbox");
m_UITextureNewHitBox = (Texture)Resources.Load("hitbox");
-
+ m_UITextureNewThrowBox = (Texture)Resources.Load("throwbox");
+ m_UITextureNewBlockBox = (Texture)Resources.Load("blockbox");
+ m_UITextureNewDefendBox = (Texture)Resources.Load("defendbox");
}
void Update()
@@ -107,8 +113,11 @@ namespace ActionTool GUI.enabled = ActionManager.animationData != null;
GUI_Toolbar_NewHurtBox(ref x, ref y);
GUI_Toolbar_NewHitBox(ref x, ref y);
- GUI_Toolbar_Detail(ref x, ref y);
- GUI_Toolbar_Delete(ref x, ref y);
+ GUI_Toolbar_NewThrowBox(ref x, ref y);
+ GUI_Toolbar_NewBlockBox(ref x, ref y);
+ GUI_Toolbar_NewDefendBox(ref x, ref y);
+ //GUI_Toolbar_Detail(ref x, ref y);
+ //GUI_Toolbar_Delete(ref x, ref y);
GUI.enabled = true;
GUI_DrawSeperateLine(x + 10 + kToolbarControlMargin, 0, kToolbarHeight);
@@ -322,7 +331,10 @@ namespace ActionTool return;
DrawBoxList(animData.hurtBoxes, ref y, Color.green);
DrawBoxList(animData.hitBoxes, ref y, Color.red);
- GenericMenu_BoxFrame();
+ DrawBoxList(animData.throwBoxes, ref y, Color.blue);
+ DrawBoxList(animData.blockBoxes, ref y, Color.yellow);
+ DrawBoxList(animData.defendBoxes, ref y, Color.magenta);
+ GenericMenu_BoxFrame();
}
void DrawBoxList(List<ColliderData> boxes, ref float y, Color c)
@@ -352,7 +364,7 @@ namespace ActionTool GUI.color = c;
if (select)
{
- ActionManager.OnSelectBox(box);
+ ActionManager.OnSelectBox(box, index);
//float length = action.totalFrame * kFrameWidth;
//ui.DrawHorizontalLineFast(y, kTimeLineViewXOffset, kTimeLineViewXOffset + length, c * 0.7f);
@@ -377,12 +389,12 @@ namespace ActionTool bool frameSelect = GUI.Toggle(frameRect, frameSelected, "",styles.keyFrameButton);
if(!frameSelected && frameSelect)
{
- ActionManager.OnSelectBox(box);
- ActionManager.OnSelectColliderFrame(frame);
+ //ActionManager.OnSelectBox(box, i);
+ ActionManager.OnSelectColliderFrame(frame, box);
}
else if(frameSelect && !frameSelect)
{
- ActionManager.OnSelectColliderFrame(null);
+ ActionManager.OnSelectColliderFrame(null, null);
}
if(prevIndex != -1)
{
@@ -429,8 +441,8 @@ namespace ActionTool BoxParam param = new BoxParam();
param.collider = box;
param.frame = frame;
- if(ActionManager.colliderData != box)
- ActionManager.OnSelectBox(box);
+ //if(ActionManager.colliderData != box)
+ // ActionManager.OnSelectBox(box, index);
GenericMenu _newFrameMenu = new GenericMenu();
_newFrameMenu.AddItem(new GUIContent("New Frame"), false, ActionManager.AddNewBoxFrame, param);
_newFrameMenu.AddItem(new GUIContent("Delete"), false, ActionManager.DeleteBoxFrame, param);
@@ -473,6 +485,39 @@ namespace ActionTool x += kToolbarControlSize;
}
+ void GUI_Toolbar_NewThrowBox(ref float x, ref float y)
+ {
+ x += kToolbarControlMargin;
+ Rect rect = new Rect(x, y, kToolbarControlSize, kToolbarControlSize);
+ if (GUI.Button(rect, new GUIContent(" + ", m_UITextureNewThrowBox, "New hit box")))
+ {
+ ActionManager.NewHitBox();
+ }
+ x += kToolbarControlSize;
+ }
+
+ void GUI_Toolbar_NewDefendBox(ref float x, ref float y)
+ {
+ x += kToolbarControlMargin;
+ Rect rect = new Rect(x, y, kToolbarControlSize, kToolbarControlSize);
+ if (GUI.Button(rect, new GUIContent(" + ", m_UITextureNewDefendBox, "New hit box")))
+ {
+ ActionManager.NewHitBox();
+ }
+ x += kToolbarControlSize;
+ }
+
+ void GUI_Toolbar_NewBlockBox(ref float x, ref float y)
+ {
+ x += kToolbarControlMargin;
+ Rect rect = new Rect(x, y, kToolbarControlSize, kToolbarControlSize);
+ if (GUI.Button(rect, new GUIContent(" + ", m_UITextureNewBlockBox, "New hit box")))
+ {
+ ActionManager.NewHitBox();
+ }
+ x += kToolbarControlSize;
+ }
+
void GUI_Toolbar_Detail(ref float x, ref float y)
{
x += kToolbarControlMargin + 20;
|