private void NextDialogueSnippet(bool eventTrigger)
 {
     // If the current textbox makes use of an eventTrigger, then controller/keyboard inputs are not allowed to advance it
     if (!eventTrigger && (_currentDialogueSnippet != null && _currentDialogueSnippet._eventTriggered))
     {
         return;
     }
     CheckEndTriggers();
     if (_currentDialogueList.Count != 0)
     {
         _currentDialogueSnippet   = _currentDialogueList.Dequeue();
         _currentlyActiveText.text = _currentDialogueSnippet._text;
         CheckStartTriggers();
         if (_voicePlayback != null)
         {
             _voicePlayback.Stop();
             _voicePlayback.clip = _currentDialogueSnippet._voiceLine;
             _voicePlayback.Play();
         }
     }
     else
     {
         StartCoroutine(ChangeMenuVisibilityAnimation(false));
     }
 }
Exemplo n.º 2
0
    public IEnumerator PlaySnippet(DialogueSnippet snippet)
    {
        if (snippet.showClock)
        {
            yield return(BreakdownPrint.ShowCurrentDay(snippet.time));
        }
        if (snippet.loadScene)
        {
            SceneManager.LoadScene(snippet.sceneNumber);
        }
        else
        {
            TextText.text = "";
            TextBox.SetActive(true);
            yield return(new WaitForSeconds(.2f));

            VoiceSource.clip = snippet.audioClip;
            VoiceSource.Play();
            TextText.text = snippet.text;
            while (VoiceSource.isPlaying)
            {
                yield return(null);
            }
            TextBox.SetActive(false);
            TextText.text = "";
        }
    }
    private void Cleanup()
    {
        _currentlyActiveTextBox.SetActive(false);
        _currentlyActiveTextBox     = null;
        _currentDialogueList        = null;
        _currentlyActiveText        = null;
        _currentTriggerReceiver     = null;
        _currentTriggerReceiverType = null;
        _currentDialogueSnippet     = null;
        _voicePlayback = null;

        _inDialogue = false;
    }
Exemplo n.º 4
0
 ///<summary>returns false when it hits the end, snippet is given through the out</summary>
 public bool Advance(out DialogueSnippet snippet)
 {
     currentSnippet++;
     snippet = snippets[Mathf.Clamp(currentSnippet, 0, snippets.Length - 1)];
     return(currentSnippet < snippets.Length);
 }