找回密码
 立即注册
查看: 359|回复: 0

热更原理

[复制链接]
发表于 2022-3-3 10:25 | 显示全部楼层 |阅读模式
一、热更是什么,为什么需要热更?


在要求更新性很强的游戏运营或者App里,热更是一个很重要的功能,因为有了热更,在App有变化了之后,不需要用户重新安装一次App,重新下载安装对用户体验来说非常不友好,而是在App内部就进行了更新,另外重新提交新的安装包,在苹果AppStore的流程会比较长,对于运营维护来说非常不便。通过用户在首次启动游戏或者App后,App自动去服务器端加载最新的资源和代码,这个过程就叫热更新。
二、资源热更


1、在一般的移动端,不管是安卓还是IOS,会有一个App的数据目录,这个目录通常是只读而不允许外部做更改的,但是可以通过App本身去进行一个更改。因此需要一个额外的一个本地数据目录,用来接收服务器端最新的资源,然后需要在App首次启动的时候,把本地数据目录最新的资源拷贝到App的数据目录,即可完成了资源的更新,其中lua作为一种文本型文件,实质也是资源的一种。但是代码通常情况下需要编译后才能运行的,这就需要引入一种不需要编译就能运行的新语言,就是Lua。
三、代码热更


代码要求能热更必备的两个特性:
1、C#需要编译,Lua是解释性的弱语言,不需要提前编译,而是在lua虚拟机里执行的时候进行解释。
2、unity本身并不支持Lua语言,这时候就需要提供一个将Lua语言翻译成C#语言的机制。目前不管是ToLua还是xLua,都是需要将Unity的C#语言接口,通过反射或类似的翻译方式,生成了lua端的接口,这样子就实现了lua访问unity的功能。
最后,这样就实现了代码逻辑的热更。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-22 17:28 , Processed in 0.089055 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表