/* http://www.cgsoso.com/forum-211-1.html CG搜搜 Unity3d 每日Unity3d插件免费更新 更有VIP资源! CGSOSO 主打游戏开发,影视设计等CG资源素材。 插件如若商用,请务必官网购买! daily assets update for try. U should buy the asset from home store if u use it in your project! */ using UnityEngine; public class Sound : MonoBehaviour { public enum Button { Default, Back } public enum Others { PipeRotation, LevelComplete, } public AudioSource audioSource; public AudioSource loopAudioSource; //[HideInInspector] public AudioClip[] buttonClips; //[HideInInspector] public AudioClip[] otherClips; public static Sound instance; private void Awake() { instance = this; } private void Start() { UpdateSetting(); } public bool IsMuted() { return !IsEnabled(); } public bool IsEnabled() { return CUtils.GetBool("sound_enabled", defaultValue: true); } public void SetEnabled(bool enabled) { CUtils.SetBool("sound_enabled", enabled); UpdateSetting(); } public void Play(AudioClip clip) { audioSource.PlayOneShot(clip); } public void Play(AudioSource audioSource) { if (IsEnabled()) { audioSource.Play(); } } public void PlayButton(Button type = Button.Default) { audioSource.PlayOneShot(buttonClips[(int)type]); } public void Play(Others type, float volume = 1f) { audioSource.volume = volume; audioSource.PlayOneShot(otherClips[(int)type]); } public void PlayLooping(Others type, float volume = 1f) { loopAudioSource.volume = volume; loopAudioSource.PlayOneShot(otherClips[(int)type]); } public void StopLooping() { loopAudioSource.Stop(); } public void UpdateSetting() { audioSource.mute = IsMuted(); loopAudioSource.mute = IsMuted(); } }