private void RegisterAudioSource(GameSoundType type, AudioSource audioSource) { AudioGlobalControl audioGlobalControl = new AudioGlobalControl(); audioGlobalControl.Audio = audioSource; audioGlobalControl.Type = type; switch (type) { case GameSoundType.Background: audioSource.outputAudioMixerGroup = GameMainAudioMixerGroupBackgroundMusic; break; case GameSoundType.BallEffect: audioSource.outputAudioMixerGroup = GameMainAudioMixerGroupBallEffect; break; case GameSoundType.ModulEffect: audioSource.outputAudioMixerGroup = GameMainAudioMixerGroupModulEffect; break; case GameSoundType.Normal: audioSource.outputAudioMixerGroup = GameMainAudioMixerGroupMaster; break; case GameSoundType.UI: audioSource.outputAudioMixerGroup = GameUIAudioMixerGroupMaster; break; } audios.Add(audioGlobalControl); }
private bool IsSoundPlayerRegistered(AudioSource audioSource, out AudioGlobalControl audioGlobalControl) { foreach (AudioGlobalControl a in audios) { if (a.Audio == audioSource) { audioGlobalControl = a; return(true); } } audioGlobalControl = null; return(false); }
/// <summary> /// 销毁 SoundPlayer /// </summary> /// <param name="assets">SoundPlayer</param> public bool DestroySoundPlayer(AudioSource assets) { AudioGlobalControl audioGlobalControl = null; if (IsSoundPlayerRegistered(assets, out audioGlobalControl)) { audios.Remove(audioGlobalControl); if (audioGlobalControl.Audio.gameObject != null) { Destroy(audioGlobalControl.Audio.gameObject); } return(true); } else { GameErrorManager.LastError = GameError.NotRegister; return(false); } }