public bool PlayAudioClip(BotAudioType audioType, bool force = true)
 {
     if (force || !IsAudioPlaying(audioType))
     {
         GetAudioSource(audioType).Play();
         return(true);
     }
     return(false);
 }
        private AudioSource GetAudioSource(BotAudioType audioType)
        {
            switch (audioType)
            {
            case BotAudioType.SFX when SFXAudioSourceComponent != null:
                return(SFXAudioSourceComponent);

            case BotAudioType.SPEECH when SpeechAudioSourceComponent != null:
                return(SpeechAudioSourceComponent);

            case BotAudioType.BGM when BGMAudioSourceComponent != null:
                return(BGMAudioSourceComponent);
            }

            return(null);
        }
 public bool IsAudioPlaying(BotAudioType audioType)
 {
     return(GetAudioSource(audioType).isPlaying);
 }
 public bool IsAudioClipSet(AudioClip clip, BotAudioType audioType)
 {
     return(GetAudioSource(audioType).clip == clip);
 }
 public void SetAudioClip(AudioClip clip, BotAudioType audioType)
 {
     GetAudioSource(audioType).clip = clip;
 }