前言
xlua-framework框架,是一个纯lua的框架,基于XLua,整合ToLua的Proto-gen-lua,以及大部分ToLua作者整合的库,除了Assetbundle模块,大部分游戏逻辑全部用lua实现,目前实现的内容包括:
- UI管理模块:使用UGUI,基于MVC架构,View层实现一套组件管理系统,提供类似于Unity侧Mono脚本的调度机制。
- 场景管理模块:场景调度、Loading界面、资源预加载
- 网络模块:Protobuff、TCP连接器
- 资源管理模块:打包工具、资源热更、资源加载、资源缓存
- 定时器管理
- 协程管理
- 配置表管理
工程目录
-
AssetBundles:AB打包输出目录
-
ConfigData:配置表目录
-
ProtoToCS:Proto文件目录
-
ProtoToLua:proto-gen-lua工作目录
-
Qudao:渠道目录
-
Tools:XLua工具目录
-
Xlua-lib-build:xlua库构建工程(另设Git项目:https://github.com/smilehao/xlua-lib-build。)
Assets目录说明
-
AssetsPackage:取代Resources目录,存放项目资源
-
EasyTouchBundle:EasyTouch插件
-
Editor:编辑器脚本
-
LuaScripts:Lua脚本
-
Plugins:插件
-
Reporter:真机日志输出插件
-
Scenes:场景
-
Scropts:CS脚本
-
StreamingAssets:AB打包资源
Lua脚本目录说明
-
Common:通用工具脚本,其中Tools目录下的脚本由ToLua迁移过来,其它脚本为自定义的扩展和工具类脚本
-
Config目录:配置文件目录,其中Data目录为Lua配置自动生成工具的输出目录
-
DataCenter:数据中心
-
Framework:框架基础脚本,这部分代码具有一定通用性,与游戏逻辑无关。
-
GameLogic:游戏逻辑脚本
-
GameTest:游戏测试脚本
-
Global:全局配置脚本
-
Net:网络逻辑相关脚本
-
Resource:资源逻辑相关脚本
-
Scenes:场景逻辑相关脚本
-
UI:UI逻辑相关脚本
-
UnitTest:单元测试
-
XLua:XLua热修复脚本,其中HotfixMain.lua为lua热修复逻辑入口。
-
GameMain:游戏逻辑入口
Scripts目录说明
-
XLua:其中Gen为生成脚本、Support为自定义支持脚本
-
FrameWork:框架基础脚本
-
其它:Common通用模块、Config配置、GameLaunch游戏入口及资源热更、Platform渠道相关、Test测试和调试相关
游戏启动流程
-
启动场景:LauchScene场景,场景启动后GameLaunch.cs脚本启动
-
启动资源管理模块AssetBundleManager
-
启动资源热更新模块AssetBundleUpdater
-
资源热更新:如果需要更新,则更新完毕后重启资源管理器和Lua虚拟机(热修复模块)
-
启动游戏:进入Lua脚本执行后续游戏逻辑
Lua端启动流程
- GameMain.lua:lua的入口类,启动lua端的框架,如ConfigManager,DataManager,SceneManager,UIManager,UpdaterManager,等等
- 加载场景:比如:LoginScene,打开UI页面比如:UILoginUI,接下来就可编写自己的逻辑和页面跳转了。
详细可参考框架demo:
xlua-framework:https://github.com/smilehao/xlua-framework
本人不才,由于项目需要,需要改写部分框架代码,所以自己又新建了仓库,做了部分的改动和升级,希望能够对你有所帮助吧:
xlua-framework-unity2018:https://github.com/passiony/xlua-framework-unity2018