KEngine + SLua|XLua+ Framework = KSFramework
KSFramework是一个整合KEngine、SLua/XLua 的Unity 5 Asset Bundle开发框架,并为程序、美术、策划、运营提供辅助工具集。
热重载是KSFramework的开发重点——在不重启游戏的前提下,重载代码、配置表可立刻看到修改效果,最大限度的提升开发、调试的速度,方便运营阶段热更新。
对于程序人员,可以使用AssetBundle加载与打包、脚本化的UI、配置表代码自动生成、下载更新等基础功能模块,大大减少游戏周边基础功能的工作量;
对于策划人员,使用Excel进行编辑,可以在编辑过程中添加注释、图标、预编译指令,KSFramework会根据配置内容自动生成代码供程序使用。
对于美术人员,只需将项目需要用到资源放到指定目录,将会自动的生成Asset Bundle;程序加载Asset Bundle跟Resources.Load一样方便。
对于运营人员,利用KSFramework的热重载特性,可以针对运营需求,在项目运行过程中配置表、脚本代码在用户无知觉的情况下进行热更新。
以下方法任选其一:
方法一:把源码git clone到本地(推荐): https://github.com/mr-kelly/KSFramework.git
方法二:在项目页面点击 Clone or download 选择 Download ZIP
更新说明:
如果需要单独更新KEngine或者xlua/slua,可以手动删除原有目录,再拷贝新的目录过去。
原有目录如下:
KSFramework\Assets\KSFramework\KEngine
KSFramework\Assets\xLua
KSFramework\Assets\slua
(这种方式获得的版本非最新版本),您可以从KSFramework Release页面下载最新版本的产品包。
解压后直接用Unity打开KSFramework目录,或直接双击场景KSFramework/Assets/Game.unity。
如遇到无法下载的网络问题, 备选下载站:
- KSFramework Appveyor Artifacts: 包含每次提交的构建结果
- KSFramework OSChina镜像): 国内的镜像Git
在Editor下,无需打包AB资源即可运行,没有打包时间,提高工作效率。
如果需要调试AB相关信息,请打包AB。
- 点击菜单栏 KEngine - AutoBuilder - Android/iOS/Windows
- Unity会执行生成安装包,放在**Product/Apps/Android/**KSFramework.apk
[根据平台区分目录]
- 打包期间会自动Link AB资源到StreamingAssets目录下
注:如果是xlua,打包前请先生成代码。其它热更新方案,请参考框架使用说明。
Unity3D版本 | 支持情况 | 备注 |
---|---|---|
Unity 4.X | 支持 | |
Unity 5.x | 支持 | 部分版本API有差异,建议使用5.3.7及以上版本 |
Unity 2017 | 支持 | |
Unity 2018 | 支持 | 2018.2.7f1已测试 |
理论上只需要修改LuaModule的部分代码,就可以支持其它任意的热更新方案。
KSFramework/Modules/LuaModule/LuaBehaviour.cs
KSFramework/Modules/LuaModule/LuaModule.cs
更多版本信息可查看:https://mr-kelly.github.io/KSFramework/overview/environment-other-hotfix-solution/
下载后如果运行出错,或者使用其它版本的Unity打开,尝试以下方法:
- 重新生成Assetbundle,方法如下:点击菜单项 KEngine - AssetBundle - Bulld All
- 删除xlua或slua的生成代码,重新生成,生成的代码不同的Unity版本有差异
- 上传报错信息,提issuse。如果能自己调试解决,那更棒,同时欢迎pull 到仓库中。
- KSFramework: Unity3D开发辅助框架快速入门
- KEngine策划指南: 配置表格的编辑与编译
- KEngine: 资源的打包、加载、调试监控
- KSFramework常见问题:Lua脚本热重载,内存状态数据会不会丢失?
- KSFramework常见问题:Excel如何进行SVN协作、差异比较?
- KEngine配置表:扩展表格解析类型
- KEngine:配置表的条件编译
...
- xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc., master分支已切换为默认使用xLua
- SLua:基于Unity的Lua引擎,也可用于C#独立程序 较少维护
- ILRuntime项目为基于C#的平台(例如Unity)提供了一个纯C#实现,快速、方便且可靠的IL运行时,使得能够在不支持JIT的硬件环境(如iOS)能够实现代码的热更新 , 待续
- KEngine:AssetBundle打包加载框架
- TableML:表格标记语言,运行时与编译器