Пример #1
0
    public int StartAudio(AUDIOCLIP_KEY a_clipKey, MIXER_GROUP_TYPE a_mixerGroupType = MIXER_GROUP_TYPE.AMBIANT, bool a_isFading = true, bool a_isLooping = true, AUDIOSOURCE_KEY a_key = AUDIOSOURCE_KEY.CREATE_KEY, ulong a_delay = 0)
    {
        AudioClipLink audioClip = m_listAudioClip.Find(o => o.Key == a_clipKey);

        Assert.IsFalse(audioClip == null, "Bad audioclip key");

        return(StartAudio(audioClip.AudioClip, a_mixerGroupType, a_isFading, a_isLooping, a_key, a_delay));
    }
Пример #2
0
        public void PlayOnce(AudioClipLink clipLink, SoundType type, float volumeScale = 1)
        {
            clipLink.Load(clip =>
            {
                if (clip == null)
                {
                    return;
                }

                if (WasPlayedThisFrame(clip))
                {
                    return;
                }

                GetChannel(type).PlayOneShot(clip, volumeScale);
                AddToHistory(clip);
            });
        }
Пример #3
0
            public void StopLoop(AudioClipLink clipLink)
            {
                clipLink.Load(clip =>
                {
                    if (IsValid(clip) == false)
                    {
                        return;
                    }

                    if (activeLoops.ContainsKey(clip) == false)
                    {
                        return;
                    }

                    activeLoops[clip].Stop();

                    activeLoops.Remove(clip);
                });
            }
Пример #4
0
        public void PlayOncePitched(AudioClipLink clipLink, float pitch, float volumeScale = 1)
        {
            clipLink.Load(clip =>
            {
                if (clip == null)
                {
                    return;
                }

                if (WasPlayedThisFrame(clip))
                {
                    return;
                }

                var channel = GetChannel(SoundType.SFX);

                channel.PlayOneShot(clip, volumeScale);
                channel.SetPitch(pitch);
                AddToHistory(clip);
            });
        }
Пример #5
0
            public void PlayLoop(AudioClipLink clipLink, float volumeScale)
            {
                clipLink.Load(clip =>
                {
                    if (activeLoops.ContainsKey(clip))
                    {
                        Debug.LogWarning($"Clip {clip} already playing!");
                        return;
                    }

                    AudioSource freePlayer = GetFreePlayer();
                    if (freePlayer == null)
                    {
                        Debug.LogWarning($"Can't get free audio player! Players count: {players.Count}!");
                        return;
                    }

                    freePlayer.clip   = clip;
                    freePlayer.volume = volumeScale;
                    freePlayer.loop   = true;
                    freePlayer.Play();
                    activeLoops.Add(clip, freePlayer);
                });
            }
Пример #6
0
 public void StopLoop(AudioClipLink clip, SoundType type)
 {
     GetChannel(type).StopLoop(clip);
 }
Пример #7
0
 public void PlayLoop(AudioClipLink clip, SoundType type, float volumeScale = 1)
 {
     GetChannel(type).PlayLoop(clip, volumeScale);
 }