예제 #1
0
        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;
        }
예제 #2
0
        public void Start()
        {
            if (colliderVolume == null)
            {
                colliderVolume = GetComponent <Collider>();
            }

            instance = asset.PlayAtPoint(settings, new Vector3(), 1, group, true);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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();
                }
            }
        }
예제 #5
0
        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
        }