为什么现在大部分Unity公司还是在用Lua热更新?
为什么现在⼤部分Unity公司还是在⽤Lua热更新?
热更新,在⼿游时代⼀出来,就成为了开发者着要解决的⼀道难题。因为每次发布新版本,如果都去安装,好不容易拉来的⽤户,就流失了,毕竟你不是《王者荣耀》和和平精英,玩家会主动更新。有时候为了做游戏活动,我们可能要修改活动代码,活动过后,⼜结束,所以就需要有⼀种⼿段,⽤户不⽤重新安装游戏的情况下,能更新⼀些代码和业务逻辑。
这个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脚本调⽤。海贼无双3攻略
农村社会实践调查报告这两⼤问题有开源的框架帮我们解决了,著名的就有xLua与uLua。基于这两⼤框架,我们就可以使⽤Lua来开发Unity项⽬了。
所以Lua在Unity热更新中的地位,是⾏业历史选择的必然结果。但是Lua毕竟不是Unity指定的C#,
很多同学不会Lua,现在热更新也多了⼀些解释型C#的⽅案,⾥⾯的佼佼者就是 C# Light与ILRuntime。现在ILRuntime热更也在Unity中慢慢流⾏起来。附视频教程
视频教程 ⼤家可以学习参考⼀下
super junior综艺
两⼩时带你搞懂ILRuntime热更新

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。