Esempio n. 1
0
        public void PlaySound(GameAudioClip.GameClip _gameClip)
        {
            GameAudioClip _foundGameClip = GetAudioClip(_gameClip);

            if (CanPlaySound(_foundGameClip))
            {
                GameObject  _oneTimeClipGameObject = new GameObject("One-Time-Clip-Sound");
                AudioSource _onTimeClipAudioSource = _oneTimeClipGameObject.AddComponent <AudioSource>();

                _oneTimeClipGameObject.name = _foundGameClip.name;
                AudioClip _clip = _foundGameClip.audioClip;

                _onTimeClipAudioSource.volume = _foundGameClip.clipVolume;

                _onTimeClipAudioSource.clip = _clip;

                _onTimeClipAudioSource.Play();

                Destroy(_oneTimeClipGameObject, _clip.length);
            }
        }
Esempio n. 2
0
        private bool CanPlaySound(GameAudioClip _gameClip)
        {
            switch (_gameClip.gameClip)
            {
            default:
                return(true);

            case GameAudioClip.GameClip.DYING_TIMER_BEEP:
                if (audioTimerDictionary.ContainsKey(_gameClip.gameClip))
                {
                    float _lastTimePlayed = audioTimerDictionary[_gameClip.gameClip];

                    float _timeBetweenPlays = GetAudioClip(_gameClip.gameClip).audioClip.length;
                    if (_lastTimePlayed + _timeBetweenPlays < Time.time)
                    {
                        audioTimerDictionary[_gameClip.gameClip] = Time.time;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(true);
                }

            case GameAudioClip.GameClip.MENU_BACKGROUND:
                if (audioTimerDictionary.ContainsKey(_gameClip.gameClip))
                {
                    float _lastTimePlayed   = audioTimerDictionary[_gameClip.gameClip];
                    float _timeBetweenPlays = GetAudioClip(_gameClip.gameClip).audioClip.length;

                    if (_lastTimePlayed <= 0 && !GameObject.Find(_gameClip.name))
                    {
                        audioTimerDictionary[_gameClip.gameClip] = Time.time;
                        return(true);
                    }
                    else if (_lastTimePlayed + _timeBetweenPlays < Time.time)
                    {
                        audioTimerDictionary[_gameClip.gameClip] = Time.time;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(true);
                }

            case GameAudioClip.GameClip.LEVEL_BACKGROUND:
                if (audioTimerDictionary.ContainsKey(_gameClip.gameClip))
                {
                    float _lastTimePlayed   = audioTimerDictionary[_gameClip.gameClip];
                    float _timeBetweenPlays = GetAudioClip(_gameClip.gameClip).audioClip.length;

                    if (_lastTimePlayed <= 0 && !GameObject.Find(_gameClip.name))
                    {
                        audioTimerDictionary[_gameClip.gameClip] = Time.time;
                        return(true);
                    }
                    else if (_lastTimePlayed + _timeBetweenPlays < Time.time)
                    {
                        audioTimerDictionary[_gameClip.gameClip] = Time.time;
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    return(true);
                }
            }
        }