当前位置: 首页 > 工具软件 > KBEngine > 使用案例 >

KBEngine——消息的使用

安轶
2023-12-01

KBEngine

大白话解读KBEngine服务器引擎

第五期——注册消息

Notice:本文章可在“Angelic47——个人站点”、“KBEngine论坛”与“KBEngine 官方QQ群”发表,版权由Angelic47和引擎作者所有,其他人转载时请注明来源,否则视为侵权行为!

 

0x0D:In与Out消息

KBEngine的Unity3D插件为我们提供了“消息”这个功能,你可以将消息注册到某一个函数上去,然后就像远程遥控一样,对着消息名称一个Fire,就OK了,实在是太方便了。

何为In和Out?In和Out并没有严格定义。你可以理解成,In是传入插件内部的,Out是从插件内部传出的。也可以理解成In是传入某个程序的,Out是传出某个程序的。种种理解,都可以。

比如说现在我们有一个叫做”炸弹”的In消息,注册到了”房内”函数上面,又有一个叫做”炸弹”的Out消息,注册到了”房外”函数上面。然后当我们通过Fire命令对炸弹进行In遥控的时候,房内的炸弹就炸了。相反,我们遥控炸弹Out的时候,房外的炸弹就炸了。如果我们对炸弹进行Fire All,那么房内房外两个炸弹就全炸啦!

在程序中我们可以Fire来Fire去,实现各种各样复杂的功能……

 

0x0E:制作炸弹——注册一个消息

KBEngine.Event.registerIn(string eventname, objectobj, string funcname);

KBEngine.Event.registerOut(string eventname, objectobj, string funcname);

一目了然,registerIn是注册In消息,registerOut是注册Out消息。

stringeventname :这是要注册的消息名称。

objectobj :这里大家可以理解成你要注册的那个函数的所在位置。

stringfuncname :被注册函数名称。

 

当这个函数执行成功之后,会返回一个bool类型,来说明是否注册成功。如果注册失败,大家一般就可以直接报错然后结束游戏了。

 

0x0F:拆除炸弹——注销一个消息

KBEngine.Event.deregisterIn(string eventname, objectobj, string funcname);

KBEngine.Event.deregisterOut(string eventname, objectobj, string funcname);

一目了然,registerIn是注册In消息,registerOut是注册Out消息。

stringeventname :这是要注销的消息名称。

objectobj :这里大家可以理解成你要注销的那个函数的所在位置。

stringfuncname :被注销函数名称。

 

当这个函数执行成功之后,会返回一个bool类型,来说明是否注销成功。如果注销失败,可以根据情况再判定是否结束游戏。

 

0x10:引爆炸弹——Fire一个消息

KBEngine.Event.fireIn(string eventname, object[]args);

KBEngine.Event.fireOut(string eventname, object[]args);

KBEngine.Event.fireAll(string eventname, object[]args);

stringeventname :要Fire的消息名称。

object[]args :传给被Fire函数的形式参数。

 

这个函数没有任何返回值。

 

0x11:处理遥控指令——消息事件处理函数

KBEngine.Event.processInEvents();

KBEngine.Event.processOutEvents();

这两个函数没有任何传入的形参。用于处理Fire命令产生的请求。若此函数不执行,则所有的Fire请求不会被执行,而是进入一种队列结构中等待process。

 

这个函数也没有任何的返回值。

 类似资料: