C#热更新比Lua好在哪里?

C#热更新比Lua好在哪里?

在这里插入图片描述
在这里插入图片描述

大家好!在上期分享当中,给大家科普了一下,为什么游戏需要热更新?简而言之就是:热更新可以只下载一部分更新内容,而无需重新下

载整个游戏APP,提升了玩家的体验。

但是由于手机操作系统的限制,特别是苹果IOS的限制。手机操作系统通常不能直接支持热更新,所以就需要我们想办法去绕过这个限制。

那么作为一名游戏开发者,我们具体该如何做呢?

在这里有两种方案可供选择:

  • 使用基于传统的Lua的热更新方案
  • 采用基于C sharp的热更方案

我们先来说第1种,如果我们采用基于Lua的热更新新方案。那么不管你是用基于IOS系统的苹果手机还是用安卓手机

为了绕过限制,你都必须首先将你需要热更新的程序代码转换成对应的Lua语言脚本,然后由该虚拟机负责执行该脚本。
所以采用这种方式进行热更有三个弊端:在这里插入图片描述

  1. 开发者需要学习除了C#以外的另一门开发语言Lua 。

  2. 开发公司为了招到既懂unity引擎使用的C sharp语言,又懂Lua语言的开发者,招聘成本大大提高。

  3. 为了绕过这个限制,开发时要增加了Lua虚拟机来执行Lua脚本,这增加了一层从Unity的C#脚本到Lua脚本的转换开销,所以从理论上来说,采用Lua脚本来运行程序代码的执行效率是不可能比直接在Unity引擎中直接执行C#程序来的高的。

如果我们使用C sharp热跟就不一样了:
在这里插入图片描述

  • 首先,你不需要学一门新的编程语言

  • 其次,由于安卓系统没有限制执行热更新代码,所以我们完全可以在安卓系统上使用C#反射热更。由于安卓系统没有了从引擎层转脚本层的开销,因此,安卓代码可以获得如同直接执行unity C#脚本一样的效率;

  • 第三,对于iOS系统,可以使用一种基于C#的脚本热更新方案,它叫ILRuntime ,据统计,在正确设置的情况下,ILRuntime和Lua的运行效率是相当的,而ILRuntime的开发效率则更高;

  • 第四,ILRuntime热更新方案是unity官方主推的在iOS系统上的热更新方案,所以未来会受到unity官方更多的支持,发展也会更加迅速。

那么Lua和C#我们该如何取舍呢?

在这里插入图片描述
Lua难道就一点竞争优势都没有了吗?我们说也不是这样的。

由于Lua发展时间久远,所以Lua的积淀会更加丰富。

而ILRuntime,我们只要学习它的开发框架即可用在项目中,开发和调试的效率都比Lua方便的多。

所以对于开发者来说,同时学习这两种脚本热更方案是最佳的选择。这样可以帮助你迅速的提升职场竞争力。由于热更新是游戏开发中一个非常重要的技能,所以说通过学习这两种热更新方案,也可以使你更快的从普通开发者晋升游戏公司主程,带团队进行项目开发。

由于Lua已经是一个处于维护期的热更新方案,我们就不再赘述了。

ILRuntime具体该如何学习?

在这里插入图片描述
首先,我们要深入理解并掌握基于ILRuntime的热更新架构设计,以及ILRuntime热更脚本和unity原生脚本的双向交互。这块可以通过对
ILRuntime的源码分析来掌握。

其次,由于我们在理解上的偏差,我们可能在第1次使用ILRuntime的时候会遇到一些所谓的坑点。那么如何避免踩坑呢?这里我们就需要学习一些ILRuntime的使用经验。

第三,前面我们说了ILRuntime可以实现高效的开发和调试,包括反射热更和脚本热更的双模式支持,那么我们如何去打造一个高效开发的工作流呢?

这一点需要我们通过学习商业项目来真正的掌握,而不是仅仅去看一些演示级别的玩具代码。

今天的好,今天的分享就到这里,最后欢迎大家关注我们的《Unity全栈开发大师》,Lua、ILRuntime双修~

更多学习资源请加QQ:1517069595获取(/企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)
完整视频可以点击B站链接:https://www.bilibili.com/video/BV1k54y1n7Rp

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值