private void PlayChild(int index) { //Fade current song out if (currentChild != null) { FadeOutCurrentChild(Playlist.crossFadeSpeed); } if (playAtPoint) { currentChild = Playlist.audioAssets[index].PlayAtPoint(sourceSettings, position, volume, group, false); } else { currentChild = Playlist.audioAssets[index].Play(sourceSettings, volume, group, false); } if (!playedChildren.Contains(index)) { playedChildren.Add(index); } // currentChild.FadeIn(Playlist.crossFadeSpeed); //Hook children's completion with playlist currentChild.OnComplete += NextChild; }
public void Start() { if (colliderVolume == null) { colliderVolume = GetComponent <Collider>(); } instance = asset.PlayAtPoint(settings, new Vector3(), 1, group, true); }
private void FadeOutCurrentChild(float time) { if (currentChild == null) { return; } //Swap children ArdenAudioInstance oChild = fadingOutChild; fadingOutChild = currentChild; currentChild = oChild; //If we've already been fading something out, then just force stop it if (currentChild != null) { currentChild.Stop(); currentChild = null; } fadingOutChild.FadeOut(time); }
void OnEnable() { if (clips != null) { if (is2D) { audioSource = SoundManager.PlayAudio(clips.audioClips, group, volume, looped, Settings); } else { audioSource = SoundManager.PlayAudioAtPoint(clips.audioClips, transform.position, group, volume, looped, Settings); } if (looped && randomStart && audioSource != null) { audioSource.RandomTime(); } } if (asset != null) { if (is2D) { instance = asset.Play(Settings, volume, group, looped); } else { instance = asset.PlayAtPoint(Settings, transform.position, volume, group, looped); } if (looped && randomStart && instance != null) { instance.RandomTime(); } } }
public override void Stop() { if (completed) { return; } base.Stop(); if (currentChild != null) { currentChild.Stop(); } if (fadingOutChild != null) { fadingOutChild.Stop(); } currentChild = null; fadingOutChild = null; //Stop any coroutines as well }