xlua-framework框架简介

由于slot项目是一个需要快速迭代,经常修改和发布的游戏,因此我们决定用lua来写业务逻辑,选择了使用这个xlua-framework,在此基础上架构开发。

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:场景

Scripts:CS脚本

StreamingAssets:AB打包资源

Lua脚本目录说明
Common:通用工具脚本,其中Tools目录下的脚本由ToLua迁移过来,其它脚本为自定义的扩展和工具类脚本

Config:配置文件目录,其中Data目录为Lua配置自动生成工具的输出目录

Framework:框架基础脚本,这部分代码具有一定通用性,与游戏逻辑无关。

GameModule:游戏逻辑脚本

GameTheme:游戏机台主题脚本

Global:全局配置脚本

Net:网络逻辑相关脚本

Resource:资源逻辑相关脚本

Scenes:场景逻辑相关脚本

UI:UI逻辑相关脚本

UITest:单元测试

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