From 172d4723c7405d2e748ed03267ca10be9711212b Mon Sep 17 00:00:00 2001 From: chai Date: Fri, 9 Jul 2021 19:17:38 +0800 Subject: *misc --- Assets/ActionTool/Editor/ActionManager.cs | 89 +++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) (limited to 'Assets/ActionTool/Editor/ActionManager.cs') 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(true); + + if(frame != null) + { + ActionData action = ActionManager.actionData; + float normaltime = frame.frame / action.totalFrame; + action.curAnimTimeNormal = normaltime; + } + } + } } \ No newline at end of file -- cgit v1.1-26-g67d0