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的这种能力实现的一个热更新方案(提供包括资源包管理、下载、加载等一系列功能)。
以个答案均为个人理解,如有不对,敬请指出。