<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head>
<card title="腾讯开源手游热更新方案，Unity3D 下的 Lua 编程" id="card1">
<p> 游客</p><p>
标题:腾讯开源手游热更新方案，Unity3D 下的 Lua 编程<br/>
正文:<br/>
 xLua是Unity3D下Lua编程解决方案，自2016年初推广以来，已经应用于十多款腾讯自研游戏，因其良好性能、易用性、扩展性而广受好评。现在 腾讯已经将 xLua 开源到GitHub。2016年12月末，xLua刚刚实现新的突破：全平台支持用Lua修复C#代码bug。目前Unity下的Lua热更新方案大多都是要求要热更新的部分一开始就要用Lua语言实现，不足之处在于：        接入成本高，有的项目已经用C#写完了，这时要接入需要把需要热更的地方用Lua重新实现；            即使一开始就接入了，也存在同时用两种语言开发难度较大的问题；            Lua性能不如C#；    xLua热补丁技术支持在运行时把一个C#实现（函数，操作符，属性，事件，或者整个类）替换成Lua实现，意味着你可以：        平时用C#开发；            运行也是C#，性能秒杀Lua；            有bug的地方下发个Lua脚本fix了，下次整体更新时可以把Lua的实现换回正确的C#实现，更新时甚至可以做到不重启游戏；    这个新特性iOS，Android，Window，Mac都测试通过了，目前在做一些易用性优化。那么，腾讯开源的xLua究竟是怎样的技术？它是为何如此设计的？更令人关心的是，xLua的性能如何？带着这些问题，InfoQ对其作者进行了采访并将内容整理成文。技术背景腾讯自研手游，就我了解的项目来说，大多数游戏引擎都是Unity3D，少数用coco2d。xLua这个插件具体用到了哪些游戏中？虽说xLua是2015年3月就完成了第一个版本，但由于当时项目组热更的意识并没有很普遍，需求不是很强烈，xLua的开发资源都调到更紧急的项目了。直到15年年底正式集成到我们的apollo手游开发框架，才迎来xLua的第一个项目。到目前为止，我们已知的应用了xLua的项目有十多个，其中不乏一些重量级IP，或者按星级标准打造的产品。在xLua之前，面对iOS无法热更新的问题，有用ulua的，有用slua的，也有项目用自研的脚本语言，不过当时用人更新的项目也不多。热更新流程手游的热更新流程很简单，只是启动时检测下是否有新版本文件，有的话就下载覆盖老文件，然后启动。下载的文件如果是图片，模型这些是没问题的，但如果是U<br/><a href="https://www.webgou.info/wap.asp?mode=WAP&amp;act=View&amp;id=606&amp;Page=1">[&lt;&lt;]</a><a href="https://www.webgou.info/wap.asp?mode=WAP&amp;act=View&amp;id=606&amp;Page=1">[[1]]</a><a href="https://www.webgou.info/wap.asp?mode=WAP&amp;act=View&amp;id=606&amp;Page=2">[2]</a><a href="https://www.webgou.info/wap.asp?mode=WAP&amp;act=View&amp;id=606&amp;Page=3">[3]</a><a href="https://www.webgou.info/wap.asp?mode=WAP&amp;act=View&amp;id=606&amp;Page=10">[&gt;&gt;]</a><br/>
<br/>
<a href="wap.asp?act=Com&amp;id=606">查看评论(0)</a><br/>
<a href="wap.asp?act=AddCom&amp;inpId=606">发表评论</a><br/><br/>

<br/>

<br/>
<a href="https://www.webgou.info/wap.asp">首页</a>
</p>
</card>
</wml>