/*
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();
}
}