diff options
author | chai <chaifix@163.com> | 2021-07-07 22:13:48 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-07-07 22:13:48 +0800 |
commit | 3db514468fac20693a257179d35592d0b78e2936 (patch) | |
tree | ef0f63324299a1121a76bbe470140b461666303e /Assets/ActionTool/Editor/ActionData.cs | |
parent | a13f10139d33264fc9ebc5a15c75faf16fc7757e (diff) |
+RootMotion
Diffstat (limited to 'Assets/ActionTool/Editor/ActionData.cs')
-rw-r--r-- | Assets/ActionTool/Editor/ActionData.cs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/Assets/ActionTool/Editor/ActionData.cs b/Assets/ActionTool/Editor/ActionData.cs index 33bb5c71..4465d314 100644 --- a/Assets/ActionTool/Editor/ActionData.cs +++ b/Assets/ActionTool/Editor/ActionData.cs @@ -30,7 +30,9 @@ namespace ActionTool private const string kStateName = "Action";
- public void Initialize(Animator animator, AnimationClip clip)
+ private RootMotionData m_RootMotion;
+
+ public void Initialize(Animator animator, AnimationClip clip, RootMotionData rootmotion)
{
m_Animator = animator;
m_Clip = clip;
@@ -43,6 +45,7 @@ namespace ActionTool m_CurAnimFrame = 0;
m_PrevLocalTime = 0;
m_Animator.Play(kStateName, 0, 0);
+ m_RootMotion = rootmotion;
}
public void SetCurrentAnimTime(float time)
@@ -136,17 +139,17 @@ namespace ActionTool if (m_Animator == null)
return;
- m_Animator.speed = 1;
-
float normalizeTime = m_CurAnimFrame / m_TotalFrame;
+ m_Animator.speed = 1;
m_Animator.Play(kStateName, 0, normalizeTime);
- m_Animator.Update((float)dt);
-
- m_Animator.transform.position += m_Animator.deltaPosition;
- m_Animator.transform.rotation *= m_Animator.deltaRotation;
-
+ m_Animator.Update(0);
m_Animator.speed = 0;
+
+ if(m_RootMotion)
+ {
+ m_Animator.transform.position = m_RootMotion.GetRootMotion(normalizeTime);
+ }
}
public int GetCurrentFrame()
|