一、Lua与C#
C#是编译型语言、Lua是解析型语言,关于编译型语言和解释性语言的介绍
一般来讲Lua不能单独用于一款游戏的开发,因此对于一个Unity项目,一般先用C#进行开发,后续的热更新再通过Lua来完成,从这里可以知道两点:
- Lua语言的目的是“嵌入式”,一般用于为其他语言开发出来的项目进行功能的扩展和补丁的更新
- 在最开始使用其它语言进行项目开发的时候,需要预留与Lua代码的“交互接口”
二、为什么需要Lua
在玩任意一款手游的时候,一般来讲客户端刚启动往往都会进行版本检查,如果需要安装新的补丁(往往很小的那种30KB~5MB),就会现场安装,安装成功后再进入游戏,这个过程非常的短暂
这即是热更新,需要Lua进行支持,换句话说:热更新是指可以在不关闭游戏客户端的情况下,动态的更新游戏本身的资源,如果没有热更新,那么每次玩家更新都需要重新下载客户端,这其实是非常糟糕的。要知道有些游戏还非常的大,而每次更新的内容可能又非常的少(例如修复BUG修改数值等等)
AssetBundle: Unity内资源的一种打包格式,客户端热更新从服务器上下载下来的资源,都是AssetBundle打包过的资源
Unity客户端开发的两个热更新框架:
- ULua:对Lua的一次“包装”,本身已经写好了框架
- XLua:腾讯的开源项目,开发阶段使用十分便捷
三、Lua的安装与使用
先下载Lua安装包:51lw
如果只是为了方便学习就下里面的 LuaForWindows_v5.1.4,如果安装的过程中出现“无法连接至服务器”的错误,那么就先安装 vcredist 2005 SP1,否则不需要,记得在桌面生成图标
安装成功后会出现两个图标,运行SciTE就可以开始编写代码了
当然你也可以接着装 ideaIC(IntelliJ IDEA Community) ,然后添加 EmmyLua-1.2.0 插件,这个需要小小的操作一下
https://blog.csdn.net/Jaihk662/article/details/95068078
四、Lua的配置
一般来讲对于这种非常小巧的编辑器(总大小不超过100MB),可能会没有可视化的设置界面,需要在设置文件内通过修改参数/代码的方式进行设置,LuaForWindow的设置方法如下:
- 以管理员方式运行SciTE
- 菜单 → Options → Open Global Options File,打开全局配置文件
- 一个例子:想要修改字体的话只需要修改其第10行代码:font.base=font:字体类型,size:字体大小