private void SetNarrativeDialogue(SpeakerUIController _activeSpeakerUI, SpeakerUIController _inactiveSpeakerUI, string _text) { activeSpeakerUI = _activeSpeakerUI; _activeSpeakerUI.Dialogue = _text; _activeSpeakerUI.Show(); if (_activeSpeakerUI.dialoguePanelGO != enabled) { AM.PlayConsistentOneShot(panelOpenCloseSound, panelOpenCloseVolume); } _inactiveSpeakerUI.Hide(); if (_activeSpeakerUI.dialoguePanelGO == enabled) { AM.PlayConsistentOneShot(panelOpenCloseSound, panelOpenCloseVolume); } _activeSpeakerUI.Dialogue = ""; if (typeCoroutine != null) { StopCoroutine(typeCoroutine); } typeCoroutine = TypeWritterEffect_N(_text, _activeSpeakerUI); StartCoroutine(typeCoroutine); }
private IEnumerator EffectTypewriter(string text, SpeakerUIController controller) { foreach (char character in text.ToCharArray()) { controller.dialogue.text += character; // yield return new WaitForSeconds(0.1f); yield return(null); } }
private void SetDialogue(SpeakerUIController activeSpeakerUI, Character character, string text, Position position, Emote emote) { activeSpeakerUI.Speaker = character; switch (position) { case Position.LEFT: activeSpeakerUI.SetLeft(); break; case Position.RIGHT: activeSpeakerUI.SetRight(); break; case Position.CENTER: activeSpeakerUI.SetCenter(); break; default: activeSpeakerUI.SetLeft(); break; } switch (emote) { case Emote.ANGRY: activeSpeakerUI.SetPortrait(character.angryPortrait); break; case Emote.CONFUSED: activeSpeakerUI.SetPortrait(character.confusedPortrait); break; case Emote.HAPPY: activeSpeakerUI.SetPortrait(character.happyPortrait); break; case Emote.UNHAPPY: activeSpeakerUI.SetPortrait(character.unhappyPortrait); break; case Emote.SAD: activeSpeakerUI.SetPortrait(character.sadPortrait); break; case Emote.SILLY: activeSpeakerUI.SetPortrait(character.sillyPortrait); break; default: activeSpeakerUI.SetPortrait(character.portrait); break; } activeSpeakerUI.Show(); activeSpeakerUI.Dialogue = ""; StopAllCoroutines(); StartCoroutine(EffectTypewriter(text, activeSpeakerUI)); }
private void StartNarrative() { AM.DampenAllAudio(true); if (narTrigger.isDampenMusic) { AM.DampenBGMusic(true); } isNarrativeEventRunning = true; // Disable both the player input and the enemy movements pCon.DisablePlayerController(); Toolbox.GetInstance().GetLevelManager().PauseAllEnemies(); AM.PlayConsistentOneShot(speakersMoveInSound, speakersMoveInVolume); // Check if this narrative is a monologue, and if so, only enable the speaker on the left side if (N.isMonologue) { speakerUILeft = speakerLeft.GetComponent <SpeakerUIController>(); speakerUILeft.Speaker = N.speakerOnTheLeft; speakerUILeft.ShowSprite(); } // Else enable both speakers for the conversation else { speakerUILeft = speakerLeft.GetComponent <SpeakerUIController>(); speakerUILeft.Speaker = N.speakerOnTheLeft; speakerUILeft.ShowSprite(); speakerUIRight = speakerRight.GetComponent <SpeakerUIController>(); speakerUIRight.Speaker = N.speakerOnTheRight; speakerUIRight.ShowSprite(); } if (!N.hasTutorial) { tutorialsRemaining = false; } if (!pCon.isController) { Cursor.visible = true; Cursor.lockState = CursorLockMode.None; } AdvanceNarrative(); }
private void SetNarrativeMonologueDialogue(SpeakerUIController _activeSpeakerUI, string _text) { activeSpeakerUI = _activeSpeakerUI; _activeSpeakerUI.Dialogue = _text; _activeSpeakerUI.Show(); _activeSpeakerUI.Dialogue = ""; if (typeCoroutine != null) { StopCoroutine(typeCoroutine); } typeCoroutine = TypeWritterEffect_N(_text, _activeSpeakerUI); StartCoroutine(typeCoroutine); }
public IEnumerator TypeWritterEffect_N(string _text, SpeakerUIController _speakerUI) { isTyping = true; yield return(new WaitForSeconds(0.3f)); typingSource.volume = textVolume; typingSource.clip = textSound; typingSource.Play(); foreach (char letter in _text.ToCharArray()) { _speakerUI.Dialogue += letter; yield return(new WaitForSeconds(textDelayTime)); } typingSource.Stop(); isTyping = false; }
private void Awake() { speakerUI = speaker.GetComponent <SpeakerUIController>(); }