diff options
author | chai <chaifix@163.com> | 2021-07-09 19:17:38 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-07-09 19:17:38 +0800 |
commit | 172d4723c7405d2e748ed03267ca10be9711212b (patch) | |
tree | adc7260f0e88a7402ce0e5f35e4e35c1afe0cb48 /Assets/ActionTool/Editor/ActionManager.cs | |
parent | f9bf87f60bd777cc5922e38133436eaa9fa45ba1 (diff) |
*misc
Diffstat (limited to 'Assets/ActionTool/Editor/ActionManager.cs')
-rw-r--r-- | Assets/ActionTool/Editor/ActionManager.cs | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Assets/ActionTool/Editor/ActionManager.cs b/Assets/ActionTool/Editor/ActionManager.cs index d147b0d6..08fc8383 100644 --- a/Assets/ActionTool/Editor/ActionManager.cs +++ b/Assets/ActionTool/Editor/ActionManager.cs @@ -56,6 +56,12 @@ namespace ActionTool private static AnimationData s_AnimationData;
public static AnimationData animationData { get { return s_AnimationData; } }
+ private static ColliderData s_CurColliderData;
+ public static ColliderData colliderData { get { return s_CurColliderData; } }
+
+ public static ColliderData.ColliderFrame s_CurEditColliderFrame;
+ public static ColliderData.ColliderFrame editColliderFrame { get { return s_CurEditColliderFrame; } }
+
private static ActionToolGizmos s_Gizmos;
public static ActionToolGizmos gizmos { get { return s_Gizmos; } }
@@ -141,6 +147,8 @@ namespace ActionTool if (s_RootActionTool)
GameObject.DestroyImmediate(s_RootActionTool);
s_CurActionData = null;
+ s_CurEditColliderFrame = null;
+ s_CurColliderData = null;
}
private static void InitializeUnitInstance(GameObject unit)
@@ -263,5 +271,86 @@ namespace ActionTool AssetDatabase.Refresh();
}
+ public static void NewHurtBox()
+ {
+ if (s_AnimationData == null)
+ {
+ Debug.LogError("[ActionTool] 没有animation data数据");
+ return;
+ }
+ ColliderData box = new ColliderData(ColliderBox.EColliderType.HurtBox, ColliderBox.Pivot.MiddleBottom);
+ s_AnimationData.AddBox(s_AnimationData.hurtBoxes, box);
+ }
+
+ public static void NewHitBox()
+ {
+ if (s_AnimationData == null)
+ {
+ Debug.LogError("[ActionTool] 没有animation data数据");
+ return;
+ }
+ ColliderData box = new ColliderData(ColliderBox.EColliderType.HitBox, ColliderBox.Pivot.MiddleCenter);
+ s_AnimationData.AddBox(s_AnimationData.hitBoxes, box);
+ }
+
+ public static void DeleteCurBox()
+ {
+ if(s_AnimationData != null && s_CurColliderData != null)
+ {
+ s_AnimationData.DeleteBox(s_CurColliderData);
+ s_CurColliderData = null;
+ }
+ }
+
+ public static void OnSelectBox(ColliderData collider)
+ {
+ s_CurColliderData = collider;
+ }
+
+ public static void AddNewBoxFrame(object param)
+ {
+ BoxParam frame = (BoxParam)param;
+ int frameIndex = frame.frame;
+ var data = frame.collider;
+ if(data != null)
+ {
+ data.AddFrame(frameIndex);
+ }
+ }
+
+ public static void DeleteBoxFrame(object param)
+ {
+ BoxParam frame = (BoxParam)param;
+ int frameIndex = frame.frame;
+ var data = frame.collider;
+ if (data != null)
+ {
+ data.DeleteFrame(frameIndex);
+ }
+ }
+
+ public static void DeleteCurFrame()
+ {
+ if (s_CurColliderData == null)
+ return;
+ if (s_CurEditColliderFrame == null)
+ return;
+ s_CurColliderData.DeleteFrame(s_CurEditColliderFrame.frame);
+ s_CurEditColliderFrame = null;
+ }
+
+ public static void OnSelectColliderFrame(ColliderData.ColliderFrame frame)
+ {
+ s_CurEditColliderFrame = frame;
+ ColliderWindow = EditorWindow.GetWindow<ActionColliderEditor>(true);
+
+ if(frame != null)
+ {
+ ActionData action = ActionManager.actionData;
+ float normaltime = frame.frame / action.totalFrame;
+ action.curAnimTimeNormal = normaltime;
+ }
+ }
+
}
}
\ No newline at end of file |