private IEnumerator SpeakerState(int direction) { if (direction > 0) { switch (_dialogueHolder.GetSpeakerAction(_dialogueIndex - 1)) { //Não faz nada case DialogueLine.SpeakerActions.Nothing: if (_dialogueHolder.CheckForExistingDialogue(_dialogueIndex)) { SetSpeakerAppearance(); } break; //Troca de NPC case DialogueLine.SpeakerActions.Change: _npcAnimator.Play("npcAvatar_exit"); yield return(new WaitForSeconds(0.5f)); SetSpeakerAppearance(); _npcAnimator.Play("npcAvatar_enter"); break; //Apenas faz o jogador ou o NPC saírem da tela case DialogueLine.SpeakerActions.Leave: SetSpeakerAppearance(); if (_dialogueHolder.CheckIsPlayer(_dialogueIndex - 1)) { _playerAnimator.Play("playerAvatar_exit"); } else { _npcAnimator.Play("npcAvatar_exit"); } break; case DialogueLine.SpeakerActions.End: StartCoroutine(CloseDialogueBox()); break; default: //Verifica se é o último diálogo. Se for, ele não faz nada if (_dialogueIndex != _dialogueHolder.GetDialogueLenght()) { SetSpeakerAppearance(); } break; } } else { SetSpeakerAppearance(); } }