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。
这个函数也没有任何的返回值。