KEngine是一个用于Unity3D引擎的AssetBundle框架。
她的核心,资源模块(ResourceModule)为AssetBundle的资源加载、打包提供完整的一套工程规范,减少在项目开发过程中踩坑的时间; 同时基于资源模块,提供了UI模块(UIModule)、配置表模块(SettingModule),实现完整的项目协作工作流。
An official fork from CosmosEngine: https://github.com/mr-kelly/CosmosEngine CosmosEngine的官方改名、改进版
- 精简的代码
- AssetBundle的加载、打包、调试
- 新的依赖处理系统AssetDep
- 具备完整的策划->美术->程序工作流
- 适用于PC/Android/IOS平台开发
- 高性能,无反射
- 良好扩展性,支持高清版、低清版
- 两种异步风格的AssetBundle加载
- 基于约定的、无配置式的UI模块
- 基于编译的Excel配置表,配置表可添加图标、注释、批注
KEngine本质上只是一个模块容器(Module Container),它只为各个模块提供初始化管理。
打个类比,计划开发一个住宅社区,KEngine是一块没有开垦的满是泥巴的地,资源模块(ResourceModule)就是为这块地铺上了水泥;UI模块就是这个社区的会所,配置表模块就是这个社区的物业公司,它们都以水泥地的铺设为前提。接着各式各样的楼房,就是各个不同的自定义模块了。
框架中存在三大基础模块:
- 资源模块 / ResourceModule(基础模块)
- UI模块 / UIModule
- 配置表模块 / SettingsModule
AppEngine.Create函数可以传入继承IModule的类来实现模块添加。所有的IModule统一通过协程来进行初始化的。
Unity打开Assets/KEngine.NGUI.Demo/KEngineNGUIDemo.unity
点击播放, 将会加载一个简单的基于UGUI的AssetBundle资源。
KEngine.Installer安装器为现有项目嵌入KEngine提供方便的支持,可以以源码、DLL等不同形式导入。
- 资源模块/ResourceModule
- 简单资源版本控制/AssetVersionControl
- 资源运行时调试工具/ResourceModuleDebuggers
- 依赖处理系统/AssetDep
- UI模块/UIModule
- 配置表模块/SettingModule
- 扩展表头类型
策划人员深度依赖配置表模块(SettingModule)进行Excel文件的编辑,KEngine在运行过程中会监测Excel配置表目录,当发现有改动时将对Excel进行编译。
使用编译模式的最大好处,策划人员可以在Excel上进行注释、图表、批注等附加工作,甚至可以把一些文字描述文档,放到Sheet2。
编译出的纯文本文件交由程序读取,同时编译出的纯文本文件,方便在svn进行合并、比较。
在Unity打开情况下,修改Excel,将监测到改动,弹出提示框
关闭或确定提示框后,将进行表编译工作
PS: 如果在Unity未打开情况下进行Excel表的修改保存,将无法自动监测到改动。这时候,需要在打开Unity后通过菜单"KEngine->Settings->Force compile settings"进行手工编译。
_ResourcesBuild_中依次建好产品化所需的目录,如UI、Effect、Audio目录,资源依序放入。
程序需要根据项目需求,在构建系统写入适当的脚本对各个目录进行分别打包。
Assets/Resources/KEngineConfig.txt为配置文件,可拖入Excel打开, 也可通过菜单KEngine->Options进行配置