//call ONCE before your fixed update stuff, just an organizational thing protected override void PreUpdate() { //tick our timers if (!stopTimer.TickTimer()) { //tick the timer timer.TickTimer(); } //buffer the input newInput = data.BufferPrev(input); //getting the input from outside of tick, locking in input for the current tick //resetting the changes made by assigning the current controller state input = asyncInput; StateFrameData newState = null; if (newInput) { newState = data.GetCommand(); } //finding a command if (newState == null) { newState = data.TransitionState(!timer.IsTicking(), input); } if (newState != null) { ApplyNewState(newState); } if (!stopTimer.IsTicking()) { //get the velocity from the rigidbody to manipulate calcVelocity = rb.velocity; if (data.GetState().FindFrame(timer.ElapsedTime(), ref refFrame)) { ApplyStateFrame(refFrame); } } }
public bool IsActive() { return(timer.IsTicking()); }