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的时候,消息处理函数中的打印语句没有执行




  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值