转载

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

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

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

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

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

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

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

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

二、添加脚本

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,测试一下,可以玩耍了。

正文到此结束
Loading...