using System; using UnityEngine; using GFGGame.Launcher; namespace GFGGame { public class MusicManager : SingletonMonoBase { private AudioSource _player; private string _currentName; private bool _isOn = true; public bool isOn { get { return _isOn; } set { if(_isOn != value) { _isOn = value; if(_isOn) { if(_currentName != null) { Play(_currentName, true); } } else { Stop(); } LocalCache.SetBool(LauncherConfig.MUSIC_KEY, _isOn); } } } private void Awake() { _player = this.gameObject.AddComponent(); _player.loop = true; } private void Start() { } private void Update() { } public void Play(string path, bool must = false) { if(_currentName != path || must) { _currentName = path; if(_isOn) { AudioClip clip = GFGAsset.Load(path); _player.clip = clip; _player.Play(); } } } public void PlayByUrl(string url, bool must = false) { if (_currentName != name || must) { _currentName = name; //如果是播人声是不受音乐开关影响 //if (_isOn) //{ AudioClip clip = GFGAsset.Load(url); _player.clip = clip; _player.PlayOneShot(clip); //} } } public float GetSoundTime() { if (_player.clip != null) { return _player.clip.length; } return 0; } public void Pause() { _player.Pause(); } public void UnPause() { _player.UnPause(); } public void Stop() { _player.Stop(); } } }