Пример #1
0
    protected AudioSource PlayAudioClip(AudioClipStruct _audioClipStruct, bool _overrideClip)
    {
        if (!soundMng.IsSoundOn())
        {
            return(null);
        }

        if (!_audioClipStruct.canUseMultipleSource && !_overrideClip)
        {
            foreach (AudioSource source in sources)
            {
                if (source.isPlaying && source.clip == _audioClipStruct.clip)
                {
                    return(null);
                }
            }
        }

        foreach (AudioSource source in sources)
        {
            if (!source.isPlaying)
            {
                source.clip = _audioClipStruct.clip;
                source.loop = _audioClipStruct.loopable;
                source.Play();
                return(source);
            }

            if (source.isPlaying && source.clip == _audioClipStruct.clip && _overrideClip)
            {
                source.Stop();
                source.Play();
                return(source);
            }
        }

        return(null);
    }
Пример #2
0
    protected void PlayAudioClip(AudioClipStruct _audioClipStruct)
    {
        if (!_audioClipStruct.CanUseMultipleSource)
        {
            foreach (AudioSource source in sources)
            {
                if (source.isPlaying && source.clip == _audioClipStruct.clip)
                {
                    return;
                }
            }
        }

        foreach (AudioSource source in sources)
        {
            if (!source.isPlaying)
            {
                source.clip = _audioClipStruct.clip;
                source.Play();
                return;
            }
        }
    }