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;
 }