什么是热更新?
热更新可以在不重新下载客户端的情况下,更新游戏的内容。 并且热更新一般应用在手机网游上。
为什么C#脚本不可以直接更新?
因为C#是一门编程语言,在运行之前需要进行编译,而这个编译过程无法再移动平台完成,所以在我们的游戏逻辑改变的时候,C#代码发生改变的时候,我们就得重新在开发环境下编译,然后重新打包,最后让玩家重新下载最新版本。
从上面的话中大家可以看出,这样对玩家来说,体验是相当差的,浪费时间和流量。
热更新有哪些实现方式?
1.使用Lua脚本编写游戏的UI或者其他逻辑 (Lua是一个精悍小巧的脚本语言,可以跨平台运行解析,而且不需要编译过程)
2.使用C#Light
3.使用C#反射技术
关于AssetBundle
Unity提供了一种资源更新技术,就是通过AssetBundle,我们可以通过AssetBundle更新游戏UI,也可以把脚本或者其他代码当成资源打包成AssetBundle然后更新到客户端,PS: 在所有的热更新技术中都需要AssetBundle!
如何利用Lua进行热更新
在移动端可以编写Lua的解析器,通过这个解析器,可以运行最新的Lua脚本,然后我们把控制游戏逻辑的代码都写成Lua脚本。Lua的解析
1.uLua 2.NLua 3.UniLua 4.sLua