基于Unity平台,tolua架构下的热更项目框架
-
纯Lua开发业务逻辑,只要C#底层不改动,直接导出资源文件并放置至下载服务器即可实现热更新
-
可以在线多线程下载、断点续传,大文件资源传输效率、容错率更高
-
具备广播、计时器、对象池等常用游戏管理类
-
资源加载架构 自动管理资源加载源
-
ui管理架构 自动管理层级、委托事件、AB包加载卸载等功能
-
C#编写的支持异步的http、socket网络模块
-
无第三方插件,底层均为开源手写
- 无需依赖某个场景,运行自动通过Unity的特性
RuntimeInitializeOnLoadMethod
自动调用入口函数Main.cs
中的main函数
,添加tolua客户端组件LuaClient.cs
,再通过LuaClient.cs
加载lua入口文件main.lua
,开始纯lua调用 - 场景转换将触发
main.lua
内的OnLevelWasLoaded
函数,通过broadcast广播的形式,在scene_mgr.lua
监听,并创建scene_[name].lua
实例 - 场景实例中,通过
uiMgr:load([name])
的方式再次创建ui_[name].lua
实例,大部分的游戏逻辑,均写在UI实例中,个别需要绑定在具体物体上的逻辑,可以创建comp_[name].lua
实例。
详见个人博客文章Unity资源热更新知识梳理及工作流介绍
这些说明将为您提供项目的副本,并在您的本地机器上运行,用于开发和测试。有关如何在活动系统上部署项目的说明,请参阅部署。
- Unity 2020.3.4f1c1
- 通过github下载项目
https://github.com/GrayGuardian/ggb-game-client.git
- 修改项目配置
- 修改
Assets\Resources\AssetBundles\lua\const\GAME_CONST.lua
的Api_Url
、Download_Url
字段值为下载服务器配置
- 点击菜单栏
Tool - AssetBundle - Build - Build
,导出加密AB包及资源文件至Build文件夹
- 将
Build文件夹
所有的资源文件,放置在下载服务器上
- 无需选择场景,直接点击Play启动测试
此处仅展示如何快速启动项目测试,具体配置方式请看下方项目导出
-
点击
Lua - Clear warp files
清空文件,等待按提示重新生成 -
修改
Assets/Editor/AssetBundles/AssetBundleToolEditor.cs
中的配置- 修改资源版本信息 >>>
VModel vModel = new VModel()
- 修改与包体绑定的资源文件 >>>
string[] defaultFiles = new string[] { }
- 修改资源版本信息 >>>
-
点击菜单栏
Tool - AssetBundle - Build - Build
,导出加密AB包及资源文件至Build文件夹
-
将
Build文件夹
所有的资源文件,放置在下载服务器上 -
Unity直接打包APK项目
打包完毕后的apk 若C#底层代码未修改,则无需重新打包,重复2-4步导出资源文件至下载服务器,重启APP即可进行在线热更新。
- tolua - tolua框架