Unity 热更 C#(编译型语言) 和 lua(解释型语言) 比较

1.C#(编译型语言) 和 lua(解释型语言) 比较

在这里插入图片描述

2.热更新内容

热更新的内容包括代码和资源,代码有C#代码、lua代码,资源包括配置表、预设、音乐音效、动画、字体、图片、材质等等
在这里插入图片描述

3.C# 热更

Unity默认的开发语言是C#,我们写的C#代码最终会被编译成dll由Unity引擎来加载。所以可以把部分C#代码编译成一个独立的dll,上传到Web服务器,启动游戏时从服务器下载dll文件,在运行时重新加载dll,通过这种方式来达到热更新的目的,不过这种方式被视为是危险操作,因为鬼知道你重新加载的dll的代码里是不是病毒,如果你的项目上架了应用市场,使用这种dll的热更操作,大概率会被应用市场视为违规操作而下架。
在这里插入图片描述

4.Lua 热更

说到游戏的热更新,就不得不提lua,lua这门语言是运行时动态解释的,它没运行时就是一个普通的文本文件,我们可以把它看成是资源文件。所以lua代码热更和资源热更本质是一样的,一般都是打成AssetBundle放在Web服务器,客户端从Web服务器下载最新的AssetBundle到本地。

市面上的lua框架有很多,比如tolua、xlua、ulua、slua等等,本质都是在Unity环境里内嵌一个lua虚拟机(使用c语言实现的虚拟机),游戏运行时动态解析lua脚本并执行,所以我们就可以把一些逻辑用lua来实现,然后再通过Web服务器下载lua脚本(一般是lua源码做加密后再打成AssetBundle文件,或者是使用luac将lua源码编译成字节码然后再打成AssetBundle文件),从而实现热更的目的。
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值