ARK – KernelPlugin介绍

该插件是ARK框架中的核心插件, 主要用来管理Entity对象和进程配置数据, 其中主要包含四个模块,

  • AFCClassModule
  • AFCElementModule
  • AFCSceneModule
  • AFCKernelModule

该四个插件对应的功能各不相同, 却各有关联,下面详细讲解各个模块的功能.

AFCClassModule

主要负责ARK中Class的管理, 这里的Class类似Entity, 区别于Entity的是, Class是通过配置出来的, 而Entity是在运行过程中动态创建出来的, 其余功能和Entity类似.
ClassModule通过加载DataConfig/Struct/LogicClass.xml来获得ClassName, InstancePath(Class的结构文件路径), ResPath(Class的配置文件路径). 有些动态创建出来的Entity需要通过Class来提供结构样式, 这种Class的Res文件是没有配置的, 因为都是动态创建过程中赋值. 同时也提供ClassEvent和ClassCallback, 当该Class对应的Entity创建时, 可以对应处理事件.

下面举例说明如何使用ClassCallback

而AFCPropertyModule::OnObjectClassEvent中可以根据ClassEvent处理不同的业务逻辑,做到解耦(注意:AddClassCallBack要在该Class对应的Entity创建前调用)

AFCElementModule

主要管理配置类数据, 通过上面的ClassModule获得Instance和ResPath后,对这两个分别加载进内存,形成配置文件,后续就可以通过下面接口获取配置内容了

AFCSceneModule

用来创建场景和管理场景中的Entity列表(为了更加灵活, 当前是按照地图全图广播的, 如有RPG项目的需求,请自行添加RPG中的九宫格/十字链表等视野管理), 可以获取场景中的Entity数据, 从而进行数据广播等等.
因暂时ARK框架中并无实际逻辑,所以此模块暂时并没有特别多的用处.

AFCKernelModule

主要用来作为Entity数据管理, 是本插件的核心模块,几乎所有的接口都是来自此模块, 主要用途为获取Entity对象, 获取/修改Entity的Node和Table数据, 同时可以注册公共的ClassEvent, DataNodeEvent, DataTableEvent(公共事件并不局限于某个Class/Entity)

公共注册接口如下:

数据获取接口如下:

举个数据获取的例子:

待补充

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 3 = 4

This site uses Akismet to reduce spam. Learn how your comment data is processed.