【Unity3D API的学习与使用】Unity中的事件响应——UnityEvent
2015-03-25 02:33
537 查看
在Unity3D中也有如同Java一样的实现事件注册机制的类,就是UnityEvent。
UnityEvent继承自UnityEventBase,主要通过三个函数实现对事件的注册与响应,示例:
上述的示例就使用了UnityEvent三大函数中的两个(AddListener和invoke,一个注册事件,一个响应事件),还有一个RemoveListener,用于移除监听器。
UnityEvent的响应函数还可以传入参数,即使用UnityEvent<T>类(最多可以使用4个,即可使用到UnityEvent<T1,T2,T3,T4>),但因为这几个类都必须使用先继承才能使用,示例如下:
将脚本拖至控件运行后,控制台打印结果如下:
点击静夜思按钮后,控制台输出了“床前明月光,疑是地上霜.”
UnityEvent继承自UnityEventBase,主要通过三个函数实现对事件的注册与响应,示例:
#pragma strict var event : Events.UnityEvent; //此处不能直接使用UnityEvent,需指明Events function Start () { event = new Events.UnityEvent (); //创建对象 event.AddListener(Hello); //注册事件 } function OnGUI () { if (GUILayout.Button("静夜思") && event != null) { event.Invoke (); //响应 } } function Hello() { Debug.Log ("床前明月光"); }
上述的示例就使用了UnityEvent三大函数中的两个(AddListener和invoke,一个注册事件,一个响应事件),还有一个RemoveListener,用于移除监听器。
UnityEvent的响应函数还可以传入参数,即使用UnityEvent<T>类(最多可以使用4个,即可使用到UnityEvent<T1,T2,T3,T4>),但因为这几个类都必须使用先继承才能使用,示例如下:
#pragma strict class MyEvent extends Events.UnityEvent.<String> {} var event : MyEvent; function Start () { event = new MyEvent (); //创建对象 event.AddListener(Hello); //注册事件 } function OnGUI () { if (GUILayout.Button("静夜思") && event != null) { event.Invoke (",疑是地上霜。"); //响应 } } function Hello(s:String) { Debug.Log ("床前明月光"+s); }
将脚本拖至控件运行后,控制台打印结果如下:
点击静夜思按钮后,控制台输出了“床前明月光,疑是地上霜.”
相关文章推荐
- 【Unity3D技巧】在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信 (二) : 引入中间层NotificationCenter
- 【Unity3D API的学习与使用】Unity实现GUI组件的位移、缩放和旋转
- Unity3D技巧在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信
- 【Unity3D技巧】在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信 (二) : 引入中间层NotificationCenter
- Unity3D研究之在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信引入中间层
- 【Unity3D技巧】在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信
- c#学习笔记之九 事件(event)的使用,一个简单的例子揭示其设计理念
- Unity_DOTween动画的学习(十一)_DOTweenPath路径编辑器的使用补充_结合按钮触发不同点击事件控制播放状态_Waypoints
- 关于移动端触屏输入控制的API的使用汇总(二)_Unity 单指与双指Touch事件捕获(网友项目使用总结)
- ExtJS学习笔记2:响应事件、使用AJAX加载数据
- 在Unity中使用事件/委托机制(event/delegate)进行GameObject之间的通信
- go语言使用go-sciter创建桌面应用(六) Element元素操作和Event事件响应
- Unity3D 学习 - 通过C#脚本创建简单的按钮、响应事件
- 【Unity3D】【NGUI】如何使用新的Event事件
- 在Unity中使用事件/委托机制(event/delegate)进行GameObject之
- c# 学习笔记之九 事件(event)的使用,一个简单例子揭示机理
- Qt学习: QCloseEvent关闭事件的使用及代码示例
- 关于移动端触屏输入控制的API的使用汇总(三)_Unity Android手机触屏事件
- ExtJS学习笔记2:响应事件、使用AJAX载入数据
- Unity3d_iTweenEvent内置事件的使用