热更新(四) -之uLua SimpleFramework

看官网的撕逼文章 http://ulua.org/index.html

1,下载:SimpleFramework,并解压

Paste_Image.png

2,在Unity3D中打开SimpleFramework文件夹,载入工程中,菜单中可以看到有Lua,打开Welcome Screen

热更新(四) -之uLua SimpleFramework_第1张图片
Paste_Image.png

第一步是清空,弹出框架后,就点击Clear,


Paste_Image.png

第二步是Gen Lua Wrap Files,弹出,,

热更新(四) -之uLua SimpleFramework_第2张图片
Paste_Image.png
Paste_Image.png

然后找到LuaWrap文件夹,在菜单中,先清空Clear,然后生成Gen Lua Wrap Files ,生成后,生成的类就会注册到Lua的环境中。


热更新(四) -之uLua SimpleFramework_第3张图片
Paste_Image.png
Paste_Image.png

为[AssetBundle] Build的


Paste_Image.png

Build后,会生成一个StreamingAssets文件夹,这些都是要更新的


热更新(四) -之uLua SimpleFramework_第4张图片
Paste_Image.png

运行examples中的案例后,C盘里面这个simpleframework和StreamingAssets文件夹里面的文件都是相似的
热更新(四) -之uLua SimpleFramework_第5张图片
Paste_Image.png

3,examples案例解析

,在c#里执行Lua代码,,,new Lua表示Lua解析器, DoString 表示执行Lua代码


热更新(四) -之uLua SimpleFramework_第6张图片
Paste_Image.png

反射调用


热更新(四) -之uLua SimpleFramework_第7张图片
Paste_Image.png

非反射调用
热更新(四) -之uLua SimpleFramework_第8张图片
Paste_Image.png

在Unity中访问Lua中的变量
执行Lua脚本文件,调用Lua方法,在Lua中使用协程


热更新(四) -之uLua SimpleFramework_第9张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第10张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第11张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第12张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第13张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第14张图片
Paste_Image.png

4,框架启动第一步GlobalGenerator,生成appview和gamemanager

热更新(四) -之uLua SimpleFramework_第15张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第16张图片
Paste_Image.png

5,GameManager中对资源的更新处理

热更新(四) -之uLua SimpleFramework_第17张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第18张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第19张图片
Paste_Image.png

6,GameManager处理Lua的View的加载和初始化

安装并打开Lua Studio

热更新(四) -之uLua SimpleFramework_第20张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第21张图片
Paste_Image.png

6,Lua代码中的结构和调用顺序和对资源的处理和对游戏逻辑的控制

热更新(四) -之uLua SimpleFramework_第22张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第23张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第24张图片
Paste_Image.png

7,创建开发UI界面

热更新(四) -之uLua SimpleFramework_第25张图片
Paste_Image.png

8,打包资源,创建GameManager的lua脚本

创建好的UI都做成预制件并保存,选择所有的UI图片成一个包,
用到的字体也打成一个包


Paste_Image.png
Paste_Image.png

选择如下图的下拉菜单


Paste_Image.png

Build完成后,观察如下图文件夹有没有增加什么东西。


热更新(四) -之uLua SimpleFramework_第26张图片
Paste_Image.png

接来下要通过Lua代码进行加载


Paste_Image.png

打开GameManager.cs代码,其中有需要改动的地方。


Paste_Image.png

找到Lua代码中的GameManager.lua,复制并重新写代码
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第27张图片
Paste_Image.png

右键新建2个文件放在View下,处理场景中2个预制件的


Paste_Image.png

9,开发View视图层下的Lua代码,来获取UI中的组件

编写Lua中的ButtonPanellua代码


热更新(四) -之uLua SimpleFramework_第28张图片
Paste_Image.png

场景中SettingsPanel添加设置界面从小到大的动画


热更新(四) -之uLua SimpleFramework_第29张图片
Paste_Image.png

再添加一个面板隐藏的动画
热更新(四) -之uLua SimpleFramework_第30张图片
Paste_Image.png

继续,反向设置,由大变小


热更新(四) -之uLua SimpleFramework_第31张图片
Paste_Image.png

做成动画状态机
热更新(四) -之uLua SimpleFramework_第32张图片
Paste_Image.png

弄好上面后,编写Lua中的SettingsPanellua代码
热更新(四) -之uLua SimpleFramework_第33张图片
Paste_Image.png

10,开发Controller控制层下的Lua代码,控制UI控件的产生和事件监听

首先在Lua中的Controller右键建SettingsCtrl.lua文件


Paste_Image.png
热更新(四) -之uLua SimpleFramework_第34张图片
Paste_Image.png

接着,在Lua中的Controller右键建ButtomCtrl.lua文件

热更新(四) -之uLua SimpleFramework_第35张图片
Paste_Image.png

然后,之前的GameManager.lua再更改如下


热更新(四) -之uLua SimpleFramework_第36张图片
Paste_Image.png

写完代码后,资源需要Build一下


热更新(四) -之uLua SimpleFramework_第37张图片
Paste_Image.png

11,发布到手机上,启动Server,进行Lua代码的更新

发布前,在菜单中,先清空Clear,然后生成Gen Lua Wrap Files ,生成后,
发布到安卓上


Paste_Image.png

C#代码中AppConst.cs要修改


Paste_Image.png
热更新(四) -之uLua SimpleFramework_第38张图片
Paste_Image.png

接下来把服务器端集中起来,先打开工程所在的目录

热更新(四) -之uLua SimpleFramework_第39张图片
Paste_Image.png

打开Server.sln


热更新(四) -之uLua SimpleFramework_第40张图片
Paste_Image.png

进一部找到HttpServer.cs并打开


Paste_Image.png

把代码改为连接本机


Paste_Image.png

接下来返回到Server里面去启动,找到bin文件夹


Paste_Image.png

找到SuperSocketSocketServer.exe文件
右键以管理员身份运行


热更新(四) -之uLua SimpleFramework_第41张图片
Paste_Image.png

弹出界面


热更新(四) -之uLua SimpleFramework_第42张图片
Paste_Image.png

服务器端运行成功后,可以发布了
热更新(四) -之uLua SimpleFramework_第43张图片
Paste_Image.png

编译出错,框架要修改一下。把#endif挪动一下位置
热更新(四) -之uLua SimpleFramework_第44张图片
Paste_Image.png

接下来做更新,看安卓端能不能同步过来
打开Luastudio,打开里面的解决方案

热更新(四) -之uLua SimpleFramework_第45张图片
Paste_Image.png

设置按钮


热更新(四) -之uLua SimpleFramework_第46张图片
Paste_Image.png
热更新(四) -之uLua SimpleFramework_第47张图片
Paste_Image.png

改完代码后,在Unity里面更新一下,热更新就完成了


Paste_Image.png

12,热更新完结篇-游戏资源更新和游戏逻辑的更新

你可能感兴趣的:(热更新(四) -之uLua SimpleFramework)