/// <summary> /// Plays SFX from SFX channel with a callback appended at the end. /// </summary> /// <param name="audio"></param> /// <param name="vol"></param> /// <param name="pitch"></param> /// <param name="callback"></param> public void PlaySFX(AUDIOS audio, AUDIOPLAYER channel, Action callback, float vol = 1f, float pitch = 1f, float delay = 0.0f) { AudioClip audioClip; if (!audioMap.ContainsKey(audio)) { Debug.LogWarning(transform.gameObject.name + ": " + "Tried to play undefined sound: " + audio.ToString()); return; } channels[(int)channel].pitch = pitch; channels[(int)channel].volume = vol; if (audioMap.TryGetValue(audio, out audioClip)) { // channels[(int)AUDIOPLAYER.SFX].clip = audioClip; channels[(int)channel].PlayOneShot(audioClip); StartCoroutine(AppendSFXCallback(audioClip, delay, callback)); // channels[(int)AUDIOPLAYER.SFX].Play(); //if (channels[(int)AUDIOPLAYER.SFX].isPlaying) // Debug.Log("Playing: " + channels[(int)AUDIOPLAYER.SFX].clip.name); } }
/// <summary> /// Plays music from music channel /// </summary> /// <param name="audio"></param> /// <param name="loop"></param> /// <param name="doFade"></param> /// <param name="vol"></param> /// <param name="pitch"></param> public void PlayMusic(AUDIOS audio, bool doFade, float fadeDuration = 3.0f, bool loop = true, float vol = 1.0f, float pitch = 1f) { AudioClip audioClip; if (!audioMap.ContainsKey(audio)) { Debug.LogWarning(transform.gameObject.name + ": " + "Tried to play undefined sound: " + audio.ToString()); return; } channels[(int)AUDIOPLAYER.MUSIC].pitch = pitch; channels[(int)AUDIOPLAYER.MUSIC].volume = vol; channels[(int)AUDIOPLAYER.MUSIC].loop = loop; if (audioMap.TryGetValue(audio, out audioClip)) { channels[(int)AUDIOPLAYER.MUSIC].clip = audioClip; channels[(int)AUDIOPLAYER.MUSIC].Play(); if (doFade) { channels[(int)AUDIOPLAYER.MUSIC].volume = 0f; channels[(int)AUDIOPLAYER.MUSIC].DOFade(1.0f, fadeDuration); } if (channels[(int)AUDIOPLAYER.MUSIC].isPlaying) { Debug.Log("Playing: " + channels[(int)AUDIOPLAYER.MUSIC].clip.name); } } }
IEnumerator DoTransitionMusic(AUDIOS audioToTransit, float durationOut, float durationIn) { AudioClip audioClip; if (!audioMap.ContainsKey(audioToTransit)) { Debug.LogWarning(transform.gameObject.name + ": " + "Tried to play undefined sound: " + audioToTransit.ToString()); yield break; } channels[(int)AUDIOPLAYER.MUSIC].DOFade(0.0f, durationOut).OnComplete(() => { channels[(int)AUDIOPLAYER.MUSIC].Stop(); if (audioMap.TryGetValue(audioToTransit, out audioClip)) { channels[(int)AUDIOPLAYER.MUSIC].clip = audioClip; channels[(int)AUDIOPLAYER.MUSIC].Play(); channels[(int)AUDIOPLAYER.MUSIC].DOFade(1.0f, durationIn).SetEase(Ease.InQuad); } }).SetEase(Ease.OutQuad); yield return(null); }
public void PlayVoiceOver(AUDIOS audio) { PlayUISFX(audio, AUDIOPLAYER.UI_SFX2); }
/// <summary> /// Do fade transition between different music /// </summary> /// <param name="audio"></param> /// <param name="durationOut"></param> /// <param name="durationIn"></param> public void TransitMusic(AUDIOS audioToTransit, float durationOut, float durationIn) { StartCoroutine(DoTransitionMusic(audioToTransit, durationOut, durationIn)); }
// Funciones de Audio Manager public static void PlaySound(AUDIOS index) { instance.asource.Stop(); instance.asource.clip = instance.clips[(int)index]; instance.asource.Play(); }