private void ManageQueue() { switch (m_queueStatus) { case VocalQueueStatus.Empty: { if (m_vocalQueue.Count > 0) { AdvanceQueue(); } break; } case VocalQueueStatus.PlayingQueue: { //When done playing if (!m_Voice.isPlaying) { if (m_vocalQueue.Count > 0) { m_queueStatus = VocalQueueStatus.Resting; } else { m_queueStatus = VocalQueueStatus.Empty; } } break; } case VocalQueueStatus.PlayingNonessential: { //When done playing if (!m_Voice.isPlaying) { if (m_vocalQueue.Count > 0) { m_queueStatus = VocalQueueStatus.Resting; } else { m_queueStatus = VocalQueueStatus.Empty; } } break; } case VocalQueueStatus.Resting: { m_currentRestTime += Time.deltaTime; if (m_currentRestTime >= m_restLength) { AdvanceQueue(); } break; } } }
private void SpeakNonessential(AudioClip m_line) { m_Voice.PlayOneShot(m_line); m_queueStatus = VocalQueueStatus.PlayingNonessential; }
private void SpeakQueueLine(AudioClip m_line) { m_Voice.PlayOneShot(m_line); m_queueStatus = VocalQueueStatus.PlayingQueue; m_currentRestTime = 0f; }