public void Kick(long timestamp) { if (timestamp == lastKickTimestamp) { return; } if (currentState != KickStates.Kicking) { currentState = KickStates.Kicking; target = kickLimits.y; lastKickTimestamp = timestamp; } }
private void UpdateState() { if (Mathf.Approximately(GetCurrentAngle(), target)) { switch (currentState) { case KickStates.Kicking: target = kickLimits.x; currentState = KickStates.Retracting; break; case KickStates.Retracting: currentState = KickStates.Idle; break; default: break; } } }