NGUI中 EventDelegate 如何创建一个带参数的函数委托

来源:互联网 发布:软件著作权 商标 编辑:程序博客网 时间:2024/06/05 06:36

下面的内容讲述了如何在List<EventDelegate> 实例的委托链中加入一个带参数的函数。

以UIToggle为例,现在要在它的onChange中添加一个回调函数


设  UIToggle  脚本实例为   tmp_tog,

UIToggle所在的GameObject为 tmp_obj

回调脚本为 tmp_item ,

要执行的函数为 public void setCurrent(GameObject obj)


//实例化一个EventDelegate 对象

EventDelegate tmpDEL = new EventDelegate(tmp_item,"setCurrent");
//把它的.parameters[0]指定为函数的第一个参数,本例就只有一个参数,如果多个参数的话,同样的为[1]、[2]....赋值,

//其中obj就是第一个参数,field应该不重复就行,具体不详,我是随便写的。
tmpDEL.parameters[0] = new EventDelegate.Parameter() { obj = tmp_obj, field = "toggle"};

//在onChange链表中加入该EventDelegate 对象
 tmp_tog.onChange.Add(tmpDEL);

以上实测可行,注意parameters[x] 赋值里写的参数与回调函数的一致性

0 0