| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 | using System;using UnityEngine;using GFGGame.Launcher;namespace GFGGame{    public class MusicManager : SingletonMonoBase<MusicManager>    {        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<AudioSource>();            _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<AudioClip>(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<AudioClip>(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();        }    }}
 |