diff options
Diffstat (limited to 'Assets/ActionTool/Editor/ActionData.cs')
-rw-r--r-- | Assets/ActionTool/Editor/ActionData.cs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/Assets/ActionTool/Editor/ActionData.cs b/Assets/ActionTool/Editor/ActionData.cs index 03dc6b86..2c75ad92 100644 --- a/Assets/ActionTool/Editor/ActionData.cs +++ b/Assets/ActionTool/Editor/ActionData.cs @@ -22,6 +22,8 @@ namespace ActionTool private TimelineEventProxy m_TimelineEventProxy;
+ private static List<Projectile> m_Projectiles = new List<Projectile>();
+
#region metadata
private float m_TotalFrame; //timeline采样的总帧数
public float totalFrame { get { return m_TotalFrame; } }
@@ -84,7 +86,10 @@ namespace ActionTool m_PrevLocalTime = 0;
m_Animator.Play(kStateName, 0, 0);
m_RootMotion = rootmotion;
+
m_TimelineEventProxy = new TimelineEventProxy(animator.gameObject.transform);
+ m_TimelineEventProxy.isInEditMode = true;
+ m_TimelineEventProxy.registerProjectile = RegisterProjectile;
}
public void SetCurrentAnimTime(float time)
@@ -179,6 +184,13 @@ namespace ActionTool m_CurAnimFrame %= m_TotalFrame;
}
+ for (int i = 0; i < m_Projectiles.Count; ++i)
+ {
+ if (m_Projectiles[i] == null)
+ continue;
+ m_Projectiles[i].Update((float)(EditorApplication.timeSinceStartup - m_PrevLocalTime));
+ }
+
ActionManager.gizmos.SetCurAnimFrame(m_CurAnimFrame);
SampleFrame();
@@ -287,6 +299,11 @@ namespace ActionTool m_SampleRate = 0;
}
+ public static void RegisterProjectile(Projectile projectile)
+ {
+ m_Projectiles.Add(projectile);
+ }
+
}
}
|