首页 > 代码库 > unity游戏开发之自定义事件测试demo
unity游戏开发之自定义事件测试demo
上文中写了unity游戏开发自定义消息事件点击打开链接
下面是测试demo
第一,打卡unity,新建一个场景,然后新建一个空的游戏对象,如图中的EventObj
第二步,测试代码EventTest.as,直接拖拽给上面的空游戏对象EentObj
测试代码如下:
using UnityEngine; using System.Collections; public class EventTest : MonoBehaviour { // Use this for initialization void Start () { //消息注册 EventMgr.Ins.AddEventListener (ECoreEventType.EID_DEMO_TEST, OnEventTestDemoHandler); } // Update is called once per frame void Update () { if (Input.GetKeyDown (KeyCode.A)) { //消息派发 print("dispatch.."); EventMgr.Ins.DispatchCoreEvent(new CoreEvent(ECoreEventType.EID_DEMO_TEST,0)); } if (Input.GetKeyDown (KeyCode.B)) { EventMgr.Ins.DispatchCoreEvent(new CoreEvent(ECoreEventType.EID_DEMO_TEST,1)); } if (Input.GetKeyDown (KeyCode.C)) { EventMgr.Ins.DispatchCoreEvent(new CoreEvent(ECoreEventType.EID_DEMO_TEST,2)); } } //消息处理函数 void OnEventTestDemoHandler(CoreEvent evt) { if (evt.EventCode == 0) { print("you press A"); } else if (evt.EventCode == 1) { print("you press B"); } else if (evt.EventCode == 2) { //移除消息处理函数后,再按A 或者B键,消息将不在打印 print("Press C and remove this EventHandler"); EventMgr.Ins.RemoveEventListener(ECoreEventType.EID_DEMO_TEST,OnEventTestDemoHandler); } } }
运行测试log如下
可以看出,当按下A,和B的时候,派发的消息被消息处理函数接收,并打印了相应信息。当按下C的时候,移除消息处理,在按下A的时候,消息处理函数中的打印语句没有执行
unity游戏开发之自定义事件测试demo
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。