【Unity3D学习与使用】Unity中的事件响应——UnityEvent
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【Unity3D学习与使用】Unity中的事件响应——UnityEvent,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1273字,纯文字阅读大概需要2分钟。
内容图文
在Unity3D中也有如同Java一样的实现事件注册机制的类,就是UnityEvent。
UnityEvent继承自UnityEventBase,主要通过三个函数实现对事件的注册与响应,示例:
#pragma strict
var event : Events.UnityEvent; //此处不能直接使用UnityEvent,需指明EventsfunctionStart()
{
event = new Events.UnityEvent (); //创建对象
event.AddListener(Hello); //注册事件
}
functionOnGUI()
{if (GUILayout.Button("静夜思") && event != null)
{
event.Invoke (); //响应
}
}
functionHello()
{
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;
functionStart()
{
event = new MyEvent (); //创建对象
event.AddListener(Hello); //注册事件
}
functionOnGUI()
{if (GUILayout.Button("静夜思") && event != null)
{
event.Invoke (",疑是地上霜。"); //响应
}
}
functionHello(s:String)
{
Debug.Log ("床前明月光"+s);
}
将脚本拖至控件运行后,控制台打印结果如下:
点击静夜思按钮后,控制台输出了“床前明月光,疑是地上霜.”
原文:http://blog.csdn.net/zgljl2012/article/details/44610353
内容总结
以上是互联网集市为您收集整理的【Unity3D学习与使用】Unity中的事件响应——UnityEvent全部内容,希望文章能够帮你解决【Unity3D学习与使用】Unity中的事件响应——UnityEvent所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。