Lua是一种轻量小巧的脚本语言,它由标准的C语言编写并且是开源的,可以很方便的和其他程序进行集成和扩展(C#,Java.....),其设计目的是为了嵌入应用程序中,为应用程序提供灵活的扩展和定制功能。
一般来讲Lua不能单独用于一款游戏的开发,因此对于一个Unity项目,一般先用C#进行开发,后续的热更新再通过Lua来完成,从这里可以知道两点:
在玩任意一款手游的时候,一般来讲客户端刚启动往往都会进行版本检查,如果需要安装新的补丁(往往很小的那种30KB~5MB),就会现场安装,安装成功后再进入游戏,这个过程非常的短暂,这即是热更新,需要Lua进行支持,换句话说:热更新是指可以在不关闭游戏客户端的情况下,动态的更新游戏本身的资源,如果没有热更新,那么每次玩家更新都需要重新下载客户端,这其实是非常糟糕的。要知道有些游戏还非常的大,而每次更新的内容可能又非常的少(例如修复BUG修改数值等等)。
——C#需要编译为dll文件(需要编译),而Lua不需要:Lua几乎可以在所有的操作系统和平台进行编译运行,当更新了代码后,可以直接在手机上编译运行,不需要通过安装包重新安装游戏。
C#只能在特定的操作系统中编译成dll文件,打包进安装包安装后运行,在移动平台上不能更新替换dll文件,除非重新编辑打包进安装包重新下载安装。
可以简单的理解为当我们安装一个程序到移动端,当代码有修改时,如果它的代码是用C#编写的需要在IDE中重新编译代码重新编译成dll文件重新打包进安装包重新下载安装包再重新安装,而用Lua编写的脚本不需要重新安装程序,下载后可以直接替换。
——C#是编译型语言,Lua是解释型语言:大体上,可以将程序设计语言可以分为两类:编译型语言和解释型语言。