private void Update()
    {
        if (currentState.OnStateUpdate())
        {
            currentStateIndex++;

            currentState.OnStateExit();

            if (currentStateIndex >= sequence.Length)
            {
                this.enabled = false;
                return;
            }

            currentState = sequence[currentStateIndex];
            currentState.OnStateEnter();
        }
    }
    private void Awake()
    {
        if (sequence.Length == 0)
        {
            this.enabled = false;
        }
        else
        {
            foreach (var state in sequence)
            {
                state.enabled = false;
            }

            currentState         = sequence[currentStateIndex];
            currentState.enabled = true;
            currentState.OnStateEnter();
        }
    }