summaryrefslogtreecommitdiff
path: root/Assets/ActionTool/Editor/ActionData.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ActionTool/Editor/ActionData.cs')
-rw-r--r--Assets/ActionTool/Editor/ActionData.cs32
1 files changed, 20 insertions, 12 deletions
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);