热更新01_基本概念 Day0815

C#与Lua

C#

只能在特定的操作系统中进行编译成dll文件,然后打包到安装包,从而在其他的平台运行

在移动平台上不能更新替换已有的dll文件,除非重新下载安装包

Lua

是一种轻量小巧的脚本语言,不需要编译,可以直接用

可以在所有的操作系统和平台上编译运行,可以很方便的更新代码,更新代码后,可以直接在手机上运行,不需要重新安装安装包


Ulua

一款unity插件,它能让unity支持Lua语言


1、什么是热更新?

Lua代码都是运行时才编译的,不运行的时候是文件;所以更新逻辑只需要更新脚本(文件),不需要再编译,因而Lua能轻松实现“热更新”

。游戏上线后,在运营过程中,如果需要更换UI显示,或者修改游戏的逻辑,这个时候,如果不使用热更新,就需要重新打包,然后让玩家重新下载,就会浪费流量,体验不好。

出于对游戏性能的考虑,尽量少的低频率的调用Lua,比如尽量少在Update函数中调用Lua、循环利用已经实例化过的LuaState避免浪费资源。对于那些不需要高效运算的模块,比如UI部分,就可以放心大胆的使用Lua。

热更新可以在不重新下载客户端的情况下,更新游戏内容

2、为什么C#脚本不可以直接更新?

C#运行之前需要先编译,这个过程在手机上是无法完成的,所以当我们游戏的逻辑更改时,C#代码发生改变的时候,我们就需要重新发布新版本。这对于手游来说体验是不好的。

3、热更新有哪些实现方式?

使用Lua脚本编写游戏的UI或者其他逻辑。(调用C#里面的方法来进行)


4、什么是AssetBundle?

Unity提供的一种资源更新技术,就是通过AssetBundle更新UI,也可以通过把脚本或者其他代码当成资源打包成AssetBundle然后更新到客户端。

5、如何利用Lua进行热更新?

在移动端通过ULua编写Lua解析器,通过这个解析器可以运行最新的Lua脚本,然后我们把控制游戏逻辑的代码写成Lua脚本。

你可能感兴趣的:(热更新01_基本概念 Day0815)