using UnityEngine;
using UnityEngine.UI;
public class GameSetPanel : MonoBehaviour
{
private static GameSetPanel instance;
public static GameSetPanel Instance
{
get { return instance; }
}
private void Awake()
{
instance = this;
}
Toggle isMuteToggle;
Slider voiceSlider;
AudioSource gameVolume;
float lastVolum;
void Start()
{
voiceSlider = transform.Find("GameVolume/VoiceSlider").GetComponent<Slider>();
isMuteToggle=transform.Find("GameVolume/IsMuteToggle").GetComponent<Toggle>();
gameVolume = transform.parent.parent.Find("PlayerObj").GetComponent<AudioSource>();
voiceSlider.onValueChanged.AddListener(OnSliderValueChange);
isMuteToggle.onValueChanged.AddListener(IsMute);
voiceSlider.value=30f;
gameVolume.volume = voiceSlider.value/100;
}
private void OnSliderValueChange(float sliderValue)
{
gameVolume.volume = sliderValue/100;
if (voiceSlider.value == 0)
{
isMuteToggle.isOn = false;
}
else
{
isMuteToggle.isOn = true;
}
}
private void IsMute(bool arg0)
{
if (arg0)
{
isMuteToggle.isOn = true;
voiceSlider.value = lastVolum;
if (lastVolum==0)
{
voiceSlider.value = 5f;
}
}
else
{
isMuteToggle.isOn = false;
lastVolum = voiceSlider.value;
gameVolume.volume = 0;
voiceSlider.value = gameVolume.volume*100;
}
}
}
首先用空物体创建一个播放器,即代码里的PlayerObj,为其添加组件Audio Source。
其次创建一个UI界面,将本脚本挂上去(找UI的位置根据你自己的来),
在UI界面上分别创建一个Slider,一个Toggle。
Slider的Max Value我设置的100,方便使用,可以根据自己的需要设置。
Toggle包含的Background和Checkmark的图片可以自由更换,以达到显示静音或开启声音的效果。