热更新(四) -之uLua SimpleFramework

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

1,下载:SimpleFramework,并解压

Paste_Image.png

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

Paste_Image.png

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


Paste_Image.png

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

Paste_Image.png
Paste_Image.png

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


Paste_Image.png
Paste_Image.png

为[AssetBundle] Build的


Paste_Image.png

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


Paste_Image.png

运行examples中的案例后,C盘里面这个simpleframework和StreamingAssets文件夹里面的文件都是相似的
Paste_Image.png

3,examples案例解析

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


Paste_Image.png

反射调用


Paste_Image.png

非反射调用
Paste_Image.png

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


Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

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

Paste_Image.png
Paste_Image.png

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

Paste_Image.png
Paste_Image.png
Paste_Image.png

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

安装并打开Lua Studio

Paste_Image.png
Paste_Image.png

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

Paste_Image.png
Paste_Image.png
Paste_Image.png

7,创建开发UI界面

Paste_Image.png

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

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


Paste_Image.png
Paste_Image.png

选择如下图的下拉菜单


Paste_Image.png

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


Paste_Image.png

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


Paste_Image.png

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


Paste_Image.png

找到Lua代码中的GameManager.lua,复制并重新写代码
Paste_Image.png
Paste_Image.png

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


Paste_Image.png

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

编写Lua中的ButtonPanellua代码


Paste_Image.png

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


Paste_Image.png

再添加一个面板隐藏的动画
Paste_Image.png

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


Paste_Image.png

做成动画状态机
Paste_Image.png

弄好上面后,编写Lua中的SettingsPanellua代码
Paste_Image.png

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

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


Paste_Image.png
Paste_Image.png

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

Paste_Image.png

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


Paste_Image.png

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


Paste_Image.png

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

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


Paste_Image.png

C#代码中AppConst.cs要修改


Paste_Image.png
Paste_Image.png

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

Paste_Image.png

打开Server.sln


Paste_Image.png

进一部找到HttpServer.cs并打开


Paste_Image.png

把代码改为连接本机


Paste_Image.png

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


Paste_Image.png

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


Paste_Image.png

弹出界面


Paste_Image.png

服务器端运行成功后,可以发布了
Paste_Image.png

编译出错,框架要修改一下。把#endif挪动一下位置
Paste_Image.png

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

Paste_Image.png

设置按钮


Paste_Image.png
Paste_Image.png

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


Paste_Image.png

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,508评论 0 17
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,018评论 25 708
  • 只吃了两个月母乳的我被送给外婆抚养。从小跟着外婆去干农活,不知防晒这个概念的外婆任我在太阳底下玩。他们说小...
    嗨Pi麻阅读 318评论 0 0
  • 我看见黄色的叶子一飘一摇掉到泥土上, 才知道秋天来了。 最怕的就是等待, 而又不得不如此。 最不想让眼泪流下来, ...
    return_to_zero阅读 231评论 0 0
  • 我遇见了那么多人 也遇见过不少的事 可为什么偏偏是你 偏偏是那个 来也匆匆去也匆匆 在我的生命中恍如一颗流星 又像...
    幻梦邪魂阅读 748评论 0 3