private void ChangeDialogue(int direction) { _dialogueIndex += direction; StartCoroutine(SpeakerState(direction)); if (_dialogueHolder.CheckForExistingDialogue(_dialogueIndex)) { //Reseta a linha e chama para imprimir a linha de novo if (direction > 0) { _lineIndex = -1; } else { _lineIndex = _dialogueHolder.GetLineLenght(_dialogueIndex); } ShowLine(direction); } //Não deixa o índice ser menor que 0 _dialogueIndex = _dialogueIndex < 0 ? 0 : _dialogueIndex; //Chama as ações cadastradas no diálogo e impede o diálogo de continuar após acabar if (_dialogueIndex == _dialogueHolder.GetDialogueLenght()) { _isEnd = true; //Executa as ações apenas se tiver ações cadastradas if (_dialogueHolder.CheckActions()) { _dialogueHolder.InvokeActions(); } } }