使用Unity的UGUI实现音乐播放的基本按钮
将类型为Toggle的On和Off 放在一个Toggle Group下,如图
Toggle是一个空物体添加Toggle Group组件
在Panel下添加组件AudioSource,将之前的音频文件放置
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using System;
public class UIControll : MonoBehaviour
{
Toggle On_Toggle; //定义变量
Toggle Off_Toggle;
Slider _Slider;
Button _Button;
AudioSource _AS;
Text _ButtonText;
void Awake() //初始化变量
{
_AS = transform.GetComponent
On_Toggle = transform.Find("Group/Toggle_On").GetComponent
Off_Toggle = transform.Find("Group/Toggle_Off").GetComponent
//添加监听事件,当选中On_Toggle时调用该匿名函数
On_Toggle.onValueChanged.AddListener(delegate(bool ison) { changeValue(ison,On_Toggle.gameObject); });
Off_Toggle.onValueChanged.AddListener(delegate (bool ison) { changeValue(ison,Off_Toggle.gameObject); });
_Slider = transform.Find("Slider").GetComponent
//添加监听事件,当slider的值改变时调用该方法,同时改变的值也会传给该方法
_Slider.onValueChanged.AddListener(changvalue);
_Button = transform.Find("Button").GetComponent
//添加监听事件,当Button按下后调用该方法
_Button.onClick.AddListener(ButtonFun);
_ButtonText = transform.Find("Button/Text").GetComponent
private void changvalue(float arg0)
{
_AS.volume = arg0; //使Slider可以控制当前音量
}
private void ButtonFun()
{
if (_AS.isPlaying)//该方法返回一个布尔值,是否正在播放,是则返回真,反之则返回假
{
_ButtonText.text = "播放";
_AS.Pause(); //使音乐暂停
}
else
{
_ButtonText.text = "暂停";
_AS.Play(); //使音乐播放
}
}
private void changeValue(bool ison,GameObject ToggleG)
{
if (ison == true)
{
ToggleG.gameObject.GetComponent
switch (ToggleG.name)
{
case "Toggle_On":
_AS.Play();
_ButtonText.text = "播放";
break;
case "Toggle_Off":
_AS.Pause();
_ButtonText.text = "暂停";
break;
}
}
}
void Start () {
_ButtonText.text = "播放";
changeValue(true, Off_Toggle.gameObject);
}
}