美文网首页
为什么现在大部分Unity公司还是在用Lua热更新?

为什么现在大部分Unity公司还是在用Lua热更新?

作者: 游戏程序猿 | 来源:发表于2021-05-18 13:42 被阅读0次

热更新,在手游时代一出来,就成为了开发者着要解决的一道难题。因为每次发布新版本,如果都去安装,好不容易拉来的用户,就流失了,毕竟你不是《王者荣耀》和和平精英,玩家会主动更新。有时候为了做游戏活动,我们可能要修改活动代码,活动过后,又结束,所以就需要有一种手段,用户不用重新安装游戏的情况下,能更新一些代码和业务逻辑。

这个Blake老师讲的这个打造基于xLua热更新框架可以去看看 讲的蛮不错的

热更新分为2部分:代码热更新与资源热更新,资源热更新有成熟的流程,以前的AssetsBundle以及现在的Addressable。热更新代码就成了开发者要攻克的难题。

unity C#代码,在运行的时候,先把所有代码(框架+逻辑)都加载到内存,然后执行代码,所以代码加载完成,就无法再改了, 所以普通的C#代码,无法做代码热更新。 代码热更新的基本原理是内置一个代码解释器,游戏app运行的时候,先把底层C#代码与代码解释器运行起来,进入入口函数后,再加载游戏逻辑代码,加载完成,再使用解释器来解释执行 “逻辑代码”。这样就有机会在入口函数的时候,先到云端的服务器上把最新的逻辑代码下载下来,然后再加载到内存,完成加载后,跑最新的代码逻辑。

搞懂的热更原理以后,问题就变成了,内置哪个脚本语言的解释器?使用哪个脚本语言开发。游戏行业和其他行业不一样,大部分的核心功能都在游戏引擎代码中,而游戏引擎的代码,基本上每个引擎各成一体,没有统一的标准, 所以做为游戏行业的脚本语言,就需要2大特点:高效,轻量级。高效指的是脚本语言执行高效,轻量级指的是脚本语言很容易嵌入游戏引擎,同时脚本的体系不大,没有过多的与语言本身无关的系统和库内置在里面。满足这两大特点,的脚本语言其实不多。有一个编程语言,在它创立之初就是保持这2大理念,在2001年左右的时候被魔兽世界选为脚本语言,而风靡游戏行业,这个语言就是Lua。当Unity 需要做热更新的时候(2013年开始),而普通的C#又做不到的时候,而对于游戏行业来说Lua脚本热更新已经是很成熟的方案,自然Lua 热更新就成为了Unity热更新的首选。

基于Lua做Unity热更新,需要解决两大问题:

(1)Unity引擎内置Lua解释器, 可内置标准Lua,与运行性能更好的LuaJIT。

(2)导出Unity引擎接口给Lua脚本调用。

这两大问题有开源的框架帮我们解决了,著名的就有xLua与uLua。基于这两大框架,我们就可以使用Lua来开发Unity项目了。

所以Lua在Unity热更新中的地位,是行业历史选择的必然结果。但是Lua毕竟不是Unity指定的C#,

很多同学不会Lua,现在热更新也多了一些解释型C#的方案,里面的佼佼者就是 C# Light与ILRuntime。现在ILRuntime热更也在Unity中慢慢流行起来。附视频教程 大家可以学习参考一下

两小时带你搞懂ILRuntime热更新

相关文章

  • 为什么现在大部分Unity公司还是在用Lua热更新?

    热更新,在手游时代一出来,就成为了开发者着要解决的一道难题。因为每次发布新版本,如果都去安装,好不容易拉来的用户,...

  • LuaFramework

    ULUA简介: ULUA:Unity AssetStore 中一款热更新插件Lua Framework 的简称,2...

  • Unity--Lua热更新

    一、什么是热更新? 一般游戏上线后,玩家下载了第一个版本,在运营的过程中,会不定时的发布新的版本,如果不使用热更新...

  • c#和lua的交互的优化

    lua是目前最强大的unity热更新方案,毕竟这是唯一可以支持ios热更新的办法。然而作为一个重度ulua用户,我...

  • 如何评价C#热更框架huatuo?

    为什么这么NB?huatuo革命Unity热更新 最近huatuo(华佗)热更新解决方案火爆了unity开发圈,起...

  • unity_lua热更新_语录

    ** lua 调用unity方法中,如果是静态方法要用 "." 如果是非静态方法要用 ":"** 1.lua中字符...

  • 【文集】Unity的热更新

    热更新对游戏很重要,但是unity自身是不支持热更新的,因此这方面还是有不少方案和文章 Unity热更新之LuaI...

  • Unity 热更新为啥用Lua 详解

    他们说 阅读了网上一些文章,其实使用C#进行热更新是可以的,将需要更新的代码打包成程序集,然后利用反射即可,但是也...

  • [Unity]基于IL代码注入的Lua补丁方案

    本分享的想法源于看了这篇分享由于在对Unity项目后期进行lua热更新方案实施, 我也不想造成源代码的修改, 故在...

  • Unity开发时自动热更新Lua代码

    在游戏开发阶段中,经常需要小修小改,Unity提供了很方便的Scene窗口,让开发者的修改马上生效,而不需要重新启...

网友评论

      本文标题:为什么现在大部分Unity公司还是在用Lua热更新?

      本文链接:https://www.haomeiwen.com/subject/sdnejltx.html