当前位置: 首页 > 工具软件 > Lua > 使用案例 >

Lua(一)——Lua介绍

邰英毅
2023-12-01

一:什么是Lua?

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

一般来讲Lua不能单独用于一款游戏的开发,因此对于一个Unity项目,一般先用C#进行开发,后续的热更新再通过Lua来完成,从这里可以知道两点:

  • Lua语言的目的是嵌入式,一般用于为其他语言开发出来的项目进行功能的扩展和补丁的更新
  • 在最开始使用其它语言进行项目开发的时候,需要预留与Lua代码的“交互接口”

二:为什么要使用Lua

在玩任意一款手游的时候,一般来讲客户端刚启动往往都会进行版本检查,如果需要安装新的补丁(往往很小的那种30KB~5MB),就会现场安装,安装成功后再进入游戏,这个过程非常的短暂,这即是热更新,需要Lua进行支持,换句话说:热更新是指可以在不关闭游戏客户端的情况下,动态的更新游戏本身的资源,如果没有热更新,那么每次玩家更新都需要重新下载客户端,这其实是非常糟糕的。要知道有些游戏还非常的大,而每次更新的内容可能又非常的少(例如修复BUG修改数值等等)。


三:Lua与C#的区别

——C#需要编译为dll文件(需要编译),而Lua不需要:Lua几乎可以在所有的操作系统和平台进行编译运行,当更新了代码后,可以直接在手机上编译运行,不需要通过安装包重新安装游戏。
C#只能在特定的操作系统中编译成dll文件,打包进安装包安装后运行,在移动平台上不能更新替换dll文件,除非重新编辑打包进安装包重新下载安装。
可以简单的理解为当我们安装一个程序到移动端,当代码有修改时,如果它的代码是用C#编写的需要在IDE中重新编译代码重新编译成dll文件重新打包进安装包重新下载安装包再重新安装,而用Lua编写的脚本不需要重新安装程序,下载后可以直接替换。
 


——C#是编译型语言,Lua是解释型语言:大体上,可以将程序设计语言可以分为两类:编译型语言和解释型语言。

  • 编译型语言:很多传统的程序设计语言,例如Fortran、Ada、Pascal、C、C++和Java,都是编译型语言。这类语言需要预先将我们写好的源代码(source code)转换成目标代码(object code),这个过程被称作“编译”。运行程序时,直接读取目标代码(object code)。
  • 解释型语言:解释型语言也被称作“脚本语言”。执行这类程序时,解释器(interpreter)需要读取我们编写的源代码(source code),并将其转换成目标代码(object code),再由计算机运行。因为每次执行程序都多了编译的过程,因此效率有所下降。使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象;缺点是它们的效率通常不如编译型语言。不过权衡之下,通常使用脚本编程还是值得的:花一个小时写成的简单脚本,同样的功能用C或C++来编写实现,可能需要两天,而且一般来说,脚本执行的速度已经够快了,快到足以让人忽略它性能上的问题。脚本编程语言的例子有awk、Perl、Python、Ruby与Shell。
 类似资料: