UGUI學習 Toggle、Slider、Button監聽 實現音樂播放的基本按鈕

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

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容