#if CHRONOS_PLAYMAKER using HutongGames.PlayMaker; namespace Chronos.PlayMaker { [ActionCategory("Physics 2d (Chronos)")] [Tooltip("Gets the 2d Speed of a Game Object and stores it in a Float Variable. NOTE: The Game Object must have a rigid body 2D.")] public class GetSpeed2d : ChronosComponentAction { [RequiredField] [CheckForComponent(typeof(Timeline))] public FsmOwnerDefault gameObject; [RequiredField] [UIHint(UIHint.Variable)] public FsmFloat storeResult; public bool everyFrame; public override void Reset() { gameObject = null; storeResult = null; everyFrame = false; } public override void OnEnter() { DoGetSpeed(); if (!everyFrame) Finish(); } public override void OnUpdate() { DoGetSpeed(); } private void DoGetSpeed() { if (!UpdateCache(Fsm.GetOwnerDefaultTarget(gameObject))) return; storeResult.Value = timeline.rigidbody2D.velocity.magnitude; } } } #endif