Lua从入门到入了门(1) 搭建学习环境

前言

历程

最近需要给游戏加入任务系统,想着用脚本来写,方便以后扩展. 所以大概花了一周的时间折腾了一下这块.

目前世面主流的Unity嵌入脚本应该是两大阵营

C#的 ILRuntime(掌趣)

Lua的 *Lua(SLua,ToLua,XLua(腾讯))

最开始我是想选择ILRuntime的,不过折腾了一大圈最终还是觉得用Lua来做比较好. 目前来看我觉得这个决定还是挺明智的.

为何写教程

我发现对于新知识会出现两种情况

对于某些有短期时效性的 当时会看的很明白很透彻 但是把相应问题解决完后
过一阵子再看 发现又忘记了很多. 比如我不止一次看过矩阵,向量.但是往往等把相关数学问题解决了,几天后回头再看 发现那坨东西已经忘的差不多了…用的时候又要重新拾起来.

还有一些会一直长时间使用的知识,度过了门槛期后会变成类似于一种本能. 当时那种困惑,那种百思不得其解 回头来看 会觉得很幼稚. 不知道为何那么简单的一个问题会卡那么久.

Lua方面的知识 我觉得会是后者. 就算现在动笔开始写教程时候 看着要写的大纲 都会有一种 这么简单 还有必要写么 的感觉. 此时已经快忘记了 最初 拿着教程 一个章节来回来去读了好几遍的样子,忘记了初看到风神写的class定义时候是有多懵圈..

不过 不论是哪种”知识” 我觉得写下来都是有必要的. 一个是给自己写个备忘 方便以后用时候翻查,另一个是用写作的方式 再消化一遍相关知识. 查漏补缺 加速这种本能的记忆. 并且外一有人搜到 从中获益了呢, 这也是说不准的事儿嘛😃

OK 絮叨到此结束,开始正题 😃

环境

我是Mac,所以环境都是以Mac说的. 恩 Mac用久了 觉得Windows真是……

恩 还是说Lua吧.

安装Lua

直接官网下载最新的tar包,解压到任意位置 命令行cd进去后执行:

1
2
make macosx test
make install

一切OK后 命令行执行lua会看到

1
2
Lua 5.3.5  Copyright (C) 1994-2018 Lua.org, PUC-Rio
>

恩 这说明Lua已经安装好了.

虽然最终生产环境是直接是Unity内嵌 并不需要本地安装Lua,但是对于学习环境来说. 本机中直接安装Lua 会方便许多.

设置Sublime

我是比较建议 学习环境直接用 sublime编写就可以了,很方便. 不过之前也走过弯路 折腾了好多IDE ZeroBrane,Idea 等等 都有尝试过. 不过后来发现都是 瞎耽误功夫, 总想找个 写起来字号看着舒服的 能格式化代码的 又有代码提示的 还能下断点Watch的. 恩 想多了😂

下载插件

Sublime 其实不下载任何插件就可以直接用的,并且是内嵌Build环境的

新建一个hello.lua进去写一行print("Hello World") 然后直接cmd+b 底部就会直接看结果.

我安装的是两个插件

  • LuaFormat : 国人写的 可以格式化lua代码 很方便

  • SublimeLinter: 需要安装三个SublimeLinter,SublimeLinter-lua,SublimeLinter-luacheck 用于对代码进行检查,并且报Error后更快速定位错误位置

不过现在安插件都需要科学上网了,相关的设置可以看我之前写的文章

调整Sidebar文本大小

这个其实是我个人问题,因为换了一个4K的带鱼屏Sublime的Sidebar中的文字看着巨小.所以需要设置一下. 具体设置方法是:

Sublime->Perferences->Browse Packages...

然后在User目录下建立文件Default.sublime-theme,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[
{
"class": "sidebar_label",
"font.size": 22
},
{
"class": "sidebar_tree",
"row_padding": [8, 8],
"indent": 12,
"indent_offset": 17,
"indent_top_level": false,
"layer0.tint": [230, 230, 230],
"layer0.opacity": 1.0,
"dark_content": false
}
]

最终效果

在任意位置新建一个文件夹,比如叫Lua,然后在其下新建一个mian.lua,加入一行print("Hello World").

Lua文件夹整体拖入到Sublime中来,此时左侧Side Bar会显示,单击main.lua,然后cmd+b直接编译运行即可.

学习资料

入门1小时

和我一样的Lua纯白我建议先看Y2B上面的这个视频, 一个小时从0开始 整体给过了一遍如何写Lua. 作为初步了解 会比看书要快很多.

教科书

我最近就买过两本书 一本是Unity Shader的 另外一本就是 这个 Lua程序设计 第四版, 其实我最开始是看网上PDF版的 不过目前能找到的 只有 第二版和第四版的英文版.

建议还是看第四版,因为第四和第二之间间隔了很久,好多东西都改了. 比如module()这个因为过度设计 新版已经都废弃掉了 直接用_ENV即可.

总结

看完视频撸完书 下一步要解决的就是 怎么开始正式写代码.

理想中的Coding环境就是 写个入口文件 main.lua 然后每个类一个文件 从入口文件的某个函数开始执行 然后把整个程序Run起来.

这也就是我后续教程会Cover的部分.

坚持原创技术分享,您的支持将鼓励我继续创作!