美文网首页
UGUI学习 Toggle、Slider、Button监听 实现

UGUI学习 Toggle、Slider、Button监听 实现

作者: Unity学习的路上 | 来源:发表于2017-01-03 22:16 被阅读0次

使用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<AudioSource>();       

On_Toggle = transform.Find("Group/Toggle_On").GetComponent<Toggle>();        

Off_Toggle = transform.Find("Group/Toggle_Off").GetComponent<Toggle>();        

//添加监听事件,当选中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的值改变时调用该方法,同时改变的值也会传给该方法

_Slider.onValueChanged.AddListener(changvalue);        

_Button = transform.Find("Button").GetComponent<Button>();        

//添加监听事件,当Button按下后调用该方法

_Button.onClick.AddListener(ButtonFun);        

_ButtonText = transform.Find("Button/Text").GetComponent<Text>();    }    

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<Toggle>().isOn = true;

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);

}

}

相关文章

网友评论

      本文标题:UGUI学习 Toggle、Slider、Button监听 实现

      本文链接:https://www.haomeiwen.com/subject/duwnvttx.html