From aafae64318a5a08a68b7033441449c36f0f85a17 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 4 Aug 2021 17:37:56 +0800 Subject: *actiontool --- Assets/ActionTool/Editor/ActionData.cs | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'Assets/ActionTool/Editor/ActionData.cs') diff --git a/Assets/ActionTool/Editor/ActionData.cs b/Assets/ActionTool/Editor/ActionData.cs index ade27488..936bc422 100644 --- a/Assets/ActionTool/Editor/ActionData.cs +++ b/Assets/ActionTool/Editor/ActionData.cs @@ -49,6 +49,12 @@ namespace ActionTool private double m_PrevLocalTime; private float m_PrevNormalTime; + + private bool m_NotApplyCurve; + public bool applyCurve { get { return !m_NotApplyCurve; } set { m_NotApplyCurve = !value; } } // 是否开启curve控制速度 + private bool m_NotApplyRM; + public bool applyRootMotion { get { return !m_NotApplyRM; } set { m_NotApplyRM = !value; } } + private const string kStateName = "Action"; private RootMotionData m_RootMotion; @@ -138,18 +144,20 @@ namespace ActionTool { if (ActionManager.IsPlay) { - float dt = (float)(EditorApplication.timeSinceStartup - m_PrevLocalTime) * (ActionManager.FPS * ActionManager.Speed); -#if true - float normalizeTime = m_CurAnimFrame / m_TotalFrame; - AnimationData animData = ActionManager.animationData; - if (animData) - { - AnimationCurve curve = animData.curve; - dt *= curve.Evaluate(normalizeTime); - } -#endif + float deltaFrame = (float)(EditorApplication.timeSinceStartup - m_PrevLocalTime) * (ActionManager.FPS * ActionManager.Speed); + + if (applyCurve) + { + float normalizeTime = m_CurAnimFrame / m_TotalFrame; + AnimationData animData = ActionManager.animationData; + if (animData) + { + AnimationCurve curve = animData.curve; + deltaFrame *= curve.Evaluate(normalizeTime); + } + } - m_CurAnimFrame += dt; + m_CurAnimFrame += deltaFrame; if (m_CurAnimFrame > m_TotalFrame) { @@ -182,7 +190,7 @@ namespace ActionTool m_Animator.Update(0); m_Animator.speed = 0; - if(m_RootMotion) + if(applyRootMotion && m_RootMotion) { #if true m_Animator.transform.position = m_RootMotion.GetRootMotion(normalizeTime); -- cgit v1.1-26-g67d0