Unity使用UGUI监听多个按钮点击事件

源引自http://bbs.9ria.com/thread-432756-1-1.html

将GameObject保存在btn数组,存放Canvas中成员的名字,为每一个成员添加监听点击事件;点击触发后,根据点击事件的成员名做出相应处理。

注意把脚本附给Canvas后,要在最后为Canvas手动设置成员数和添加成员(Unity不会自动识别Canvas下的成员)

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.UI;
using UnityEngine.Events;

public class buttonclick:MonoBehaviour
{
    public GameObject[] btn;

    void Start ()
    {
        List btnsname=new List();
        for(int i=0;i<btn.Length;i++){
            btnsname.Add(btn[i].name);
            Debug.Log(btn[i].name);
        }
        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 "out":
            Application.Quit();
            break;
        case "in":
            Application.LoadLevel("menu");
            break;
        default:
            Debug.Log("error");
            break;
        }
    }
}

发布者

VC-Robot

游戏爱好者,动漫迷,C++修炼中,编程菜鸟,随性

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据