Hello unity3d!

Unity3D热更新之LuaFramework篇[01]--从零开始

前言

因工作关系,需要对手头的项目进行热更新支持。了解后发现,Lua的几个变种:XLua、ToLua(原uLua)和Slua都可以做Unity热更,而ToLua更是提供了一个简易的热更框架--LuaFramework_UGUI,使得上手变得容易,因此选定LuaFramework_UGUI框架来实现项目的热更功能。

当然,容易是相对的,对一个小白来说要弄懂这一套流程和概念并不简单。网上相关资料不少,但大多是零散而雷同的,很难让一个此前对热更缺少认知的人快速上手。因此我将自己的爬坑经历整理成文,希望能对正焦头烂额,不知道如何下手的你提供一点帮助。

01.如何获得LuaFramework框架?

1.进入ToLua的官网:http://www.ulua.org/index.html(ToLua是uLua的升级版,不要问为什么是ulua.org)

2.点击LuaFramework_UGUI的地址,打开框架在github上的位置:https://github.com/jarjin/LuaFramework_UGUI见图1-1

(如果你是NGUI用户,也可以选择NGUI对应的框架)

图1-1

3.点击“Clone or download”按钮,以zip形式下载最新的框架代码,为方便追溯,这里我将这个压缩包重命名为“LuaFramework_UGUI-master-20190327.zip”。

你也可以点击这里,下载我所用的框架包

02.运行LuaFramework框架示例

解压刚刚下载好的压缩包,发现里面是一个Unity工程(如图2-1),于是用 unity打开此工程。

图2-1

我使用的Unity版本为5.5.5f1,会提示需要升级,是否备份,点“Go Head”就行。然后会弹出“自动生成”对话框(见图2-2),点确定。

 图2-2

打开工程后,找到Main场景,直接运行,会报错“没有找到框架所需要的资源,单击Game菜单下Build xxx Resource生成”,见图2-3:

 

图2-3

根据提示,找到LuaFramework菜单下的Build xxx Resource项(并非提示的Game菜单)。因工程打开默认为Windows平台,所以选择“Build Windows Resources”菜单。

图2-4

等待操作完成后,控制台会打印许多警告,不用理会,直接再次运行,出现如图2-5所示界面。框架以Lua代码的形式动态的创建了一个界面,看到此界面表示运行LuaFramework_UGUI框架成功,也表明这个框架运行良好。

(界面右下角的Button按钮是测试与服务器的通讯功能,此处暂不细述。)

图2-5

本篇至此结束,下一篇我将会梳理此框架中用Lua创建一个面板的基本流程。

 

思考

问:ToLua、XLua以及SLua,它们之间是什么关系?

答:个人理解,Lua定义了一种语言规范,而ToLua、Xlua、Slua都是这种规范的一种实现。

问:Unity、ToLua、LuaFramework_UGUI,它们之间有什么联系?

答:ToLua搭建了一个Lua语言与Unity中c#语言沟通的桥梁,借助ToLua,你可以在C#语言中调用Lua方法,也可以在Lua语言中调用C#方法。

而LuaFramework_UGUI则是基于ToLua的这种能力实现的一个热更新方案(提供包括资源包管理、下载、加载等一系列功能)。

 

以个答案均为个人理解,如有不对,敬请指出。

posted @ 2019-03-27 01:13  子非鱼`  阅读(9103)  评论(0编辑  收藏  举报
;