NGUI EventDelagate事件委托

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BUttonClick : MonoBehaviour
{

    public UIButton button_01;
   
    void Start()
    {
        if (button_01 == null)
        {
            Debug.Log("button组件丢失了");
        }
        else
        {
            //首先将脚本中的ClicktheButton()方法变成一个EventDelagate类型的事件委托
            EventDelegate theEvent =new EventDelegate(this, "ClicktheButtton");      
                 
            //方法1:EventDelegate.Add(组件的Notefy回调组名称,一个EventDelegate类型的事件)
            EventDelegate.Add(button_01.onClick, theEvent);

            //方法2:因为Notefy回调本身就是一个事件组,所以直接add一个EventDelegate类型的事件
            button_01.onClick.Add(theEvent);
        }
    }

    //切记一定是要为public类型的,不然会报Cound not find method 'ClicktheButton' on ButtonClick的错误
    public void ClicktheButtton()
    {
        Debug.Log("我单击了这个按钮");
    }
}

 

 

结尾:一般现在的NGUI封装的比较好,可以直接在控制面板进行拖拽即可,但是代码的事件控制可能更加适合具体的功能需求,各取所需把。

posted @ 2018-03-31 09:48  Turtle_Zhang  阅读(215)  评论(0编辑  收藏  举报