summaryrefslogtreecommitdiff
path: root/Assets/ActionTool/Editor/ActionManager.cs
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-07-07 22:13:48 +0800
committerchai <chaifix@163.com>2021-07-07 22:13:48 +0800
commit3db514468fac20693a257179d35592d0b78e2936 (patch)
treeef0f63324299a1121a76bbe470140b461666303e /Assets/ActionTool/Editor/ActionManager.cs
parenta13f10139d33264fc9ebc5a15c75faf16fc7757e (diff)
+RootMotion
Diffstat (limited to 'Assets/ActionTool/Editor/ActionManager.cs')
-rw-r--r--Assets/ActionTool/Editor/ActionManager.cs23
1 files changed, 16 insertions, 7 deletions
diff --git a/Assets/ActionTool/Editor/ActionManager.cs b/Assets/ActionTool/Editor/ActionManager.cs
index e894d32c..32c71434 100644
--- a/Assets/ActionTool/Editor/ActionManager.cs
+++ b/Assets/ActionTool/Editor/ActionManager.cs
@@ -10,7 +10,7 @@ namespace ActionTool
public static string s_AnimFolder = "Assets/Art/Animations/";
public static string s_Controller = "Assets/ActionTool/controller_temp.controller";
public static string s_AnimationDataFolder = "Assets/Data/AnimationData/";
- public static string s_UnitDataFolder = "Assets/Data/UnitData/";
+ static string s_RootMotionDataFolder = "Assets/Data/RootMotionData/";
public static ActionEditor AnimationWindow;
public static ActionPreviewEditor PreviewWindow;
@@ -49,6 +49,8 @@ namespace ActionTool
public static Quaternion s_InitRotation = Quaternion.identity;
+ private static RootMotionData s_RootMotion;
+
private static bool s_IsPlay;
public static bool IsPlay { get { return s_IsPlay; } }
@@ -66,20 +68,28 @@ namespace ActionTool
public static void OnSelectAnimation(string animation)
{
s_CurrentAnimationName = animation;
- if(PreviewWindow == null)
+ if (PreviewWindow == null)
PreviewWindow = EditorWindow.GetWindow<ActionPreviewEditor>();
PreviewWindow.Repaint();
string animpath = s_AnimFolder + s_CurrentUnit.name + "/" + animation + ".anim";
AnimationClip clip = AssetDatabase.LoadAssetAtPath(animpath, typeof(AnimationClip)) as AnimationClip;
- if(clip)
+ if (clip)
{
s_OverrideContorller["EmptyAction"] = clip;
}
- if(s_CurActionData == null)
+ string rootmotionData = s_RootMotionDataFolder + s_CurrentUnit.name + "/" + animation.Replace(' ', '_') + ".asset";
+ s_RootMotion = AssetDatabase.LoadAssetAtPath<RootMotionData>(rootmotionData);
+ if (s_RootMotion == null)
+ {
+ Debug.LogError("[ActionTool] 没有对应的rootmotion, " + rootmotionData);
+ }
+
+ if (s_CurActionData == null)
s_CurActionData = new ActionData();
- s_CurActionData.Initialize(s_Animator, clip);
+ s_CurActionData.Initialize(s_Animator, clip, s_RootMotion);
+
}
public static bool HasSelectObj()
@@ -130,8 +140,7 @@ namespace ActionTool
s_OverrideContorller.name = "override controller";
s_Animator.runtimeAnimatorController = s_OverrideContorller;
- UnitRootMotion rootMotion = s_UnitInstance.GetComponent<UnitRootMotion>();
- Object.DestroyImmediate(rootMotion);
+ s_Animator.applyRootMotion = false;
}
public static void UpdateFrame()