Lua笔记一

一、Lua介绍:

        1.Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua可以很方便的和其他程序进行集成(c++,c#,java,,,,)

        2.场景应用:游戏开发 独立应用脚本

                             Web 应用脚本

                             扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench

                              安全系统,如入侵检测系统

         3.Lua和C#的区别:Lua可以在几乎所有的操作系统和平台进行编译运行     可以很方便的更新代码     更新了代码后,可以直接在手机上运行,不需要重新安装(后续的热更新方案)               C#只能在特定的操作系统中进行编译成dll文件,然后打包进安装包在其他平台(Android、iOS)运行     在移动平台上不能更新替换已有的dll文件,除非重新下载安装包。

 

二、XLua

        1.热更新:当游戏某个功能出现bug,或者修改了某个功能、增加某功能时,我们不需要下载安装包就可以更新游戏内容。

        2.热更新方案:比较受欢迎的热更新方案有uLua 、tolua、 xLua         这些热更新方案都是基于Lua语言的,也可以叫做lua插件(可以运行lua,并实现了lua和C#交互的插件)。 所以本质上这些热更新方案就是一个lua插件,可以运行lua,并实现了lua和C#交互的插件。

        3.xLua::xLua为Unity、 .Net、 Mono等C#环境增加Lua脚本编程的能力,借助xLua,这些Lua代码可以方便的和C#相互调用。xLua是Unity3D下Lua编程解决方案,自2016年初推广以来,已经应用于十多款腾讯自研游戏,因其良好性能、易用性、扩展性而广受好评。

        现在,腾讯已经将xLua开源到GitHub。 2016年12月末,xLua刚刚实现新的突破:全平台支持用Lua修复C#代码bug。 目前Unity下的Lua热更新方案大多都是要求要热更新的部分一开始就要用Lua语言实现,不足之处在于: 1、接入成本高,有的项目已经用C#写完了,这时要接入需要把需要热更的地方用Lua重新实现; 2、即使一开始就接入了,也存在同时用两种语言开发难度较大的问题; 3、Lua性能不如C#; xLua热补丁技术支持在运行时把一个C#实现(函数,操作符,属性,事件,或者整个类)替换成Lua实现,意味着你可以: 1、平时用C#开发; 2、运行也是C#,性能秒杀Lua; 3、有bug的地方下发个Lua脚本fix了,下次整体更新时可以把Lua的实现换回正确的C#实现,更新时甚至可以做到不重启游戏; 这个新特性iOS,Android,Window,Mac都测试通过了,目前在做一些易用性优化。

(注:以上为网络搜集资料整理,仅供学习参考)

 

 

 

 

你可能感兴趣的:(Lua笔记一)