1:打开login场景后,有一个比较容易出问题的地方,你是以什么终端运行的就要切换相应的平台,如果当中切换平台,需要注意一些文件的删除和重新生成。
以Android为例子:切换Android平台
点击Gen Lua Wrap Files生成相应lua基本脚本,打开Assets/uLua/Source/LuaWrap目录,你可以看到生成的一些文件,是不是这些文件的名称是否眼熟。
如果要切换平台,首先需要把这些LuaWarp删除掉
然后选择相应的平台,选择好之后再重复上面的步骤生成Wrap文件
2:想要运行这个demo,还需要一个步骤,生成相应的资源文件,
相应的,如果你要切换平台的话,这里的文件你也需要删除,先看下生成之后是什么样子
把这些文件删除了即可。
3:点击运行程序
这是此框架给的Demo,而且还有服务器Socket监听按钮点击事件。这里的服务器是在下载文件里,与Assets同级目录Server,打开
~\SimpleFramework_UGUI-master\Server\Server\bin\Debug\SuperSocket.SocketService.exe文件
输入r就开启socket服务器了,我在这里热更新使用的web服务器,会在后面介绍到,这里仅仅是演示demo中的服务器
服务器启动之后,回到Unity重新启动游戏(先启动服务器再启动客户端)
点击Button按钮就会收到来自服务器端的信息
看下服务器端
收到了客户端的信息。
4:先来简单介绍ulua脚本之间的关系
在项目的根目录下的Lua文件夹下几乎都是lua脚本,当热更新的时候这些都需要生成出来,然后放置到web服务器端供更新,关于更新的具体细节在论坛里面有介绍:http://bbs.ulua.org/dispbbs.asp?boardid=3&Id=24
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的生命周期的事件调用。
5:先来看看demo中的lua脚本,以PromptCtrl和PromptPanel脚本为例
咱们自己写的lua脚本可以以这两个脚本为模板
可以看到这里面的写法类似于javaScript,这是由于在Lua文件夹下集成了一些方法,这样写起来比较方便。
如果我们自己写,需要注意修改以下几个文件
例如自定义AdamCtrl放置于Controller文件夹下,按照模板构建自己的lua脚本, 打开define.lua脚本,为CtrlName添加AdamCtrl
打开CtrlManager.lua,添加如下
打开GameManager.lua脚本,修改如下
有的时候需要Panel文件,有的时候不需要,看自己需求所定
到这里,基本上lua就差不多了,这是创建一个新的lua如何加入到框架中,现在看看如何进行热更新。
6:发布可以热更新的apk
首先把平台转换为Android平台,重新生成Wrap File的文件,把StreamingAssets文件夹整个的删掉,这里热更新更新的是demo中的例子,界面上显示出来东西,就说明已经热更新出来了。这里要涉及到打包资源的问题,打包的资源需要设置AssetBundleName才可以自动打包,例如Assets/Examples/Builds/Prompt/PromptPanel.prefab进行打包,
不过咱们现在不需要打包,先把StreamingAssets文件夹整个删掉。
打开Scripts/ConstDefine/AppConst.cs文件,修改如下
生成的资源文件就是Unity下StreamingAssets文件夹下的内容
然后生成apk,安装到手机即可
好了,看下如何生成资源文件
这里的资源文件前面也说了,需要打包的资源设置了AssetBundleName,生成的资源文件存储在StreamingAssets文件夹下,直接拷贝StreamingAssets文件夹下所有文件到自己web服务器即可。当然,下载这些文件需要有些扩展名权限,例如
好了,累成狗了,如果有什么可以交流探讨的,可以加我QQ:503115254
转载请注明出处。