大佬Ulua框架介绍

Examples :框架自带的Demo例子,如果只需要框架的同学,里面的资源可以删除掉。去“疑难解答”里面查看方法。
 ---Builds:里面都是一些NGUI定义的图集啊、Prefab等资源。用于生成assetbundle而准备的资源。
 ---Editor:里面是例子用到的一个新手引导步骤演示的编辑器脚本。
 ---Editor Default Resource:目录是新手引导步骤对话框用的的图片资源。
 ---Rsources:例子里面用于演示的一个内建的GUI容器的Prefab。
 ---Scenes:里面一个login场景文件,另一个是cstolua自带的性能测试场景文件。
 ---Textures:里面是Buidls目录里面图集的原图文件。

Lua:框架自带的Lua源码目录,用户自定义的Lua脚本也就是放在这里面,最后打包的时候,打包脚本会将其按目录结构生成到StreaminAssets目录里面去,然后在将其上传到游戏的Web服务器上面,用于准备被每个游戏客户端下载更新他们本地的Lua脚本。达到热更目的。
 ---3rd:里面是第三方的一些插件lua、实例源码文件,比如:cjson、pbc、pblua、sproto等。
 ---Common:公用的lua文件目录,如define.lua文件,一些变量声明,全局配置等,functions.lua常用函数库,通讯的protocal.lua协议文件。
 ---Controller:控制器目录,它不依赖于某一个Lua面板,它是独立存活在Luavm中的一个操作类,操作数据、控制面板显示而已。
 ---Logic:目录里面存放的是一些管理器类,比如GameManager游戏管理器、NetworkManager网络管理器,如果你有新的管理器可以放到里面。
 ---System:这个目录是cstolua的系统目录,里面存放都是一些常用的lua类,为了优化lua调用速度,用lua重写的unity常用类。
 ---View:这是面板的视图层,里面都是一些被Unity调用的面板的变量,走的是Unity GameObject的生命周期的事件调用。

Plugins:ulua底层库所在的目录,里面存放的是不同平台的底层库,之所以ulua效率高,就是它是纯c的lua虚拟机,而不是c#解释型的。
 ---Andriod:安卓lua虚拟机底层库,里面分为armv7-a与Intel x86平台。
 ---iOS:里面就是苹果lua虚拟机底层库。
 ---ulua.bundle:里面是Mac机器的底层库。
 ---x86:里面是Win32/Linux32位机器的lua虚拟机底层库。
 ---x86_64:里面是Win64/Linux64位机器的lua虚拟机底层库。
 
Scripts: 框架的C#脚本层,之所以这个目录跟lua目录都放在最外层,为了让用户一眼都能找到,明白是什么。
 --- Common:框架的公用定义类。 BehaviourBase( 行为基类)、 GlobalGenerator 全局构造器、与luavm通知unity游戏对象的“ LuaBehaviour ”桥类。
 --- ConstDefine: 常量定义目录, AppConst(应用常量)ManagerName(管理器名称)NotiConst(通知常量,用于mvc消息通知)。
 --- Controller:控制器目录,分为Boostraps启动控制器,跟Command常用逻辑控制器。
 --- Framework:经过修改过的PureMVC的框架文件。
 --- Manager:Unity提供基础功能的管理器类,音乐、面板、线程、资源等众多管理器。
 --- Module:PureMVC的模块层,目前里面将Socket作为一个模块代理放到里面了。
 --- Network:网络的常用辅助类,ByteBuffer字节操作封装类,网络协议类,转换器类。
 --- Utility:常用工具类。
 --- View:C#用的PureMVC的视图层。

uLua:ulua/cstolua的核心目录,里面还有经过我们修缮后ulua的基础使用例子,用户初学者最佳。
 --- Core:顾名思义,ulua的核心目录,所有c#与lua的交互都是通过它进行调度的。
 --- Docs:ulua自带的文档目录,因为ulua基于LuaInterface,所以这里面就是它的文档。
 --- Editor:这是供cstolua去反射定义Wrap文件列表的工具类目录。
 --- Examples:经过我们修改增加后ulua自带的例子。
 --- Source:这个是cstolua的核心目录,里面有Base核心目录,与动态生成用于存放LuaWrap类的缓存目录。


上面的目录结构,就介绍到此为止了。既然是热更新游戏框架,接下来我们说下怎么做热更?
其实做热更的步骤不麻烦,因为Unity的c#类部分热更不了,那我们需要热更的就只有Lua代码部分了,当我们写完游戏测试OK了,就可以上线运营,并且在Web服务器上面部署最新的版本资源文件,我们就可以将Lua的代码编码后上传到Web服务器上面去,当游戏客户端启动的时候,它会启动解包流程、解包的资源一般都是当时做包时候的资源,到后面我吗修改以后,它内部的资源可能已经不是最新的了,但是大部分可能是新的,只有少部分需要更新,那紧接着就启动更新流程,从Web服务器上面的资源配置列表里面,通过MD5/CRC比较 查询到最新的资源,下载更新本地的文件,达到更新最新版的目的,游戏顺利启动。

上面基本上就是热更的指导思想了,SimpleFramework框架也基本上以此思路在运行的,如果还不清楚的话,可以看下图:
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看

猜你喜欢

转载自blog.csdn.net/qq_41996509/article/details/80688129