• 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的这种能力实现的一个热更新方案(提供包括资源包管理、下载、加载等一系列功能)。

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

  • 相关阅读:
    SQL中的全局变量和局部变量(@@/@)
    C# 委托Delegate(一) 基础介绍&用法
    internal in C#
    用代码块在new对象时set属性
    MySql与对应的Java的时间类型
    快速获取当天0点0分0秒(00:00:00)
    IsNullOrWhiteSpace与IsNullOrEmpty
    svn服务器配置 for mac
    CornerStone配置SVN,HTTP及SVN简单使用说明
    svn配置
  • 原文地址:https://www.cnblogs.com/imteach/p/10604891.html
Copyright © 2020-2023  润新知