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

现有的几个Unity热更新方案各自的优缺点是什么?

[复制链接]
发表于 2022-6-23 07:56 | 显示全部楼层 |阅读模式


  • Lua脚本热更解决方案

    • 这里就不说Lua脚本热更方案有哪些具体的的插件了,因为市面上的Lua热更方案有好几种,比如XLua,ToLua,SLua等等,这些方案的差别其实并不大,原理都是利用Lua跟C#之间进行绑定
    • 就只是说一下Lua脚本热更解决方案的优缺点:
    • 优势:

      • Lua这种方案是一个传统热更解决方案,它相对成熟,什么叫相对成熟呢?首先Lua的热更方案在传统的端游上已经用的非常成熟了,而且你可以找到从端游转过来的精通Lua的开发者。这里存在一个问题:现在很多的开发者都是开发手游出身,直接从端游转过来的开发者也不多了,所以Lua的优势在逐渐削弱
      • 还有就是Lua的技术比较成熟,有一些既有的项目资产,比如说我可能最早的一些热更方案都是用Lua做的,虽然现在Unity版本到了2021,但其实很多的项目还是用Lua作为脚本语言,我们直接把这些项目拿来改一改,就成了现在可以使用的方案

    • 所以Lua的优势就是有既有的项目资产,那么Lua有什么使用和学习的成本呢?

      • 1,需要学习Lua

        • 如果是公司团队要使用Lua,那么公司或团队在招聘时就要找懂Lua的程序员,自己用的话,就要自己学习Lua编程语言
        • 这是最高的成本,因为一般情况下,新手程序员不会同时精通C#和Lua,所以我们在进行项目拆分时,就要把它拆分成专门写脚本的和专门写底层的
        • 任何事情都不是天生就有的,而是由于技术限制,逐渐形成了相对应的解决方案,就是把开发者分成写逻辑的和写框架的

      • 2,额外开发Lua脚本框架

        • 仅仅掌握Lua还不够,Lua还对应了一套Lua层的脚本框架,这个脚本框架也是需要进行学习的,而且Lua框架是被Unity所调用的,如果不经过封装,直接调用里面的功能,那么很多时候程序都是不安全不稳定的

      • 3,开发时没有精确代码提示

        • Lua是一门脚本语言,所以它并不知道Unity里有哪些类、有哪些方法、有哪些字段,所以你很难得到一个精确的代码提示,现在市面上已经有的Lua的代码提示工具,通常是通过上下文进行猜测,这样的效果很不好
        • 另外一个就是调试不太方便,现在市面上也有一些调试工具,但是调试时经常造成程序卡顿,并不好用

      • 4,需要配齐一套开发框架,一套对应的开发人员

    • Lua作为一种传统的热更方案,咱们还是需要有一定掌握的,因为去面试时,万一他们就是用Lua的呢,现在用Lua的公司还是比较多的

  • C#热更解决方案

    • 优点

      • C#热更解决方案的优点在于:”C#热更方案已经加入了Unity的官方支持“,所以它最近两年的发展是非常迅速的,并且由于它直接使用C#进行脚本开发,招聘和学习成本也都比较低,如果不考虑框架的因素,就可以不做任何迁移,可以正常写C#的热更脚本
      • 另外一点就是,如果你之前有一些不支持热更的工程,那么你可以快速的迁移到用C#脚本热更
      • 还有一个好处就是开发和调试非常简单,几乎和原来写的原生Unity工程是一样的,普通的工程中的开发环境是VS、语言是C#,所有的代码都有精确且功能完备的代码提示,写起来非常顺手,所以这些功能优势都能够得到保留
      • 而且基于C#的ILRunTime的热更解决方案比较适合敏捷开发(现在最主流的开发方式就是敏捷开发),同时也便于快速上手,因为不需要太多的学习成本

    • 成本

      • 如果要使用C#的解决方案,那么至少需要熟悉下面几件事情

        • 1,ILRunTime虚拟器的原理

          • 最好能完整的阅读并且理解掌握它的底层源码实现
          • 有的同学会说:ILRUnTime不是有现成的官方教程吗?,官方教程是不错,但问题是:
          • 要看懂官方教程也是需要一定的开发功力的
          • 开发教程只是告诉你该怎么做,当你遇到的一些坑点时,你能掌握如何去摆脱这些坑点吗?还是说你只要遇到一个坑,你就只会在哪里看报错提示,傻愣了半天也没明白该怎么解决呢?
          • 这就是熟悉和精通的区别,作为游戏公司的主程,你就是来解决问题的,所以掌握底层源码是非常重要的

        • 2,理解ILRunTime的插件原理

          • 插件原理包括
          • MonoBehavior的适配
          • 跨域继承
          • 委托的适配
          • CLR绑定等

        • 还有一些协程的适配、异步的适配,都是需要掌握的



详细内容可以参考我们的《皇室战争S3:双端热更商业方案》公开课

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 22:38 , Processed in 0.093367 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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