程序员人生 网站导航

uGUI使用代码动态添加Button.OnClick()事件(Unity3D开发之十二)

栏目:综合技术时间:2015-01-22 08:25:36

猴子原创,欢迎转载。转载请注明: 转载自Cocos2Der-CSDN,谢谢!

原文地址: http://blog.csdn.net/cocos2der/article/details/42705885

uGUI出来这么久了,也1直没好好用用,主要是公司项目不用U3D。昨晚用了下Button,还是比较爽的。

主要说下用代码添加button.OnClick()事件的方法(使用属性面板添加的方法就不说了)

1、创建2D UI Panel,添加你需要的Button。

我添加了3个Button:BtnStart,BtnShop,BtnLeaderboards。


2、添加脚本

using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.Events; using UnityEngine.UI; public class MainMenu : MonoBehaviour { // Use this for initialization void Start () { List<string> btnsName = new List<string>(); btnsName.Add("BtnPlay"); btnsName.Add("BtnShop"); btnsName.Add("BtnLeaderboards"); foreach(string btnName in btnsName) { GameObject btnObj = GameObject.Find(btnName); Button btn = btnObj.GetComponent<Button>(); btn.onClick.AddListener(delegate() { this.OnClick(btnObj); }); } } public void OnClick(GameObject sender) { switch (sender.name) { case "BtnPlay": Debug.Log("BtnPlay"); break; case "BtnShop": Debug.Log("BtnShop"); break; case "BtnLeaderboards": Debug.Log("BtnLeaderboards"); break; default: Debug.Log("none"); break; } } // Update is called once per frame void Update () { } }

ok,测试1下,可以顽耍了。


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐