框架所用到的组件全部在预制件中,所有的组件都有添加在其中,也可自定义组件。这是官网链接 https://gameframework.cn/
这里对每个组件的用途做了大致介https://github.com/ellanjiang/unitygameframework
本文大概梳理一下各个组件的主要属性设置,有一个基础的了解,后续会详细说明。没有特殊需要注意的,会先列个标题放着,抽空看源码继续学习。
basecomponent:基础和工具
editor resource mode为资源加载模式,勾选为编辑器模式。发包时会自动取消该选项。
global helper为相关配置为数据(文本,xml,json等)解析方式,其他组件的helper选项配置,均为数据加载以及解析的结构定义,框架提供了一套默认的解析方式。当我们的文本数据和框架不一致时,需要自定义解析方式,并在对应组件中配置,否则会无法解析。
configcomponent:全局配置
存储一些全局的只读的游戏配置,如玩家初始速度,初始游戏音量等。
全局配置读取的是图示文件,路径在assetutility中配置。demo中的配置项是在切换场景时使用。
datanodecomponent:数据结点
将任意类型的数据以树状结构的形式进行保存,用于管理游戏运行时的各种数据。当游戏结束运行时,数据不会保存。如果我们需要存储的数据量比较大,而且要在游戏结束时保存,这一块框架的支持比较有限,需要我们按照自己的需求来扩展。
datatablecomponent:数据表
datatable读取的是datatables目录下的文件,路径在assetutility中配置。
数据表使用的是框架默认的解析方式defaultdatatablehelper,如果我们数据表定义的结构和demo默认的不一样,这个时候我们需要扩展自己的数据解析脚本,并选择自定义的解析方式。
解析脚本在如下图所示的路径。当我们自定义解析脚本时,必须继承datatablehelperbase基类才能够在数据表组件的下拉菜单中显示出来。
debuggercomponent:调试器
调试窗口没必要纠结,使用默认的即可,如果有新的需求可以看具体的框架逻辑去修改,当然也有很多其他的调试工具和调试手段可以使用。
debuggercomponent:下载
entitycomponent:实体
实体组件顾名思义,用来加载预制件。
instanceautoreleaseinterval:实体组实例对象池自动释放可释放对象的间隔秒数
instancecapacity:对象池容量
instanceexpiretime:对象池对象过期秒数
instancepriority:实体组实例对象池优先级
游戏运行后,会生成对象组,demo中包含的实体组有飞机实体组、武器实体组、子弹实体组、行星实体组等。实例化出来的各个实体会作为对应组的子对象。
eventcomponent:事件
filesystemcomponent:文件系统
fsmcomponent:有限状态机
localizationcomponent:本地化
demo中使用的是demo自定义的语言表解析组件,框架中用到的是xml文件。但是为了方便使用,策划会用表格来配置多语言,而项目中为了方便加载使用到的是xml文件,因此缺一个表格转xml的工具,后续会写这一块内容,使框架能更适合项目的需求。
networkcomponent:网络
objectpoolcomponent:对象池
procedurecomponent:流程
使用时需特别注意,使用到的流程要打钩,这个容易漏掉。
referencepoolcomponent:引用池
resourcecomponent:资源
资源加载方式,这个是常用到的属性。
scenecomponent:场景
settingcomponent:游戏配置
soundcomponent:声音
使用时,记得添加分组,这个容易漏掉导致报错
uicomponent:界面
ui也有分组,需注意。ui的坐标以及层级分组的坐标是固定的,框架中给的是vector3.zero。当在vr场景或其他情况下,我们需要使用到3dui,那么框架的功能是不够用的,后续会扩展3dui。这里只需初步了解主要属性。
webrequestcomponent:web 请求
发表评论