855 字
4 分钟
【Unity】当个小说家!用ink语言编写你的游戏剧情!(一)

提示#

我的自用Ink剧情系统Dia已经开源,你可以去我新的文章看看,当然你要是想自己手搓也可以 但是本系列应该不会更新了

Ink是什么?#

Ink是Inkle公司推出的一种脚本式的文字预处理语言,它可以简单轻松地编写一些优秀的游戏剧情,通过简单的符号标记来组织内容文本以及对话的流程。

Ink语言可以用标记符号来编写剧情的对话,选项,也可以添加变量和逻辑来控制剧情的变化(比如Undertale的三种路线中不同的剧情)

从Ink官网,你可以更详细地了解Ink。

工欲善其事,必先利其器-下载Inky#

Inky是Inkle推出的编写Ink语言的编辑器,在Ink官网即可下载

在Ink官网下滑就能找到Inky的下载地址,以你自己的开发平台为准下载Mac,Windows或Linux版本的Inky

熟悉Inky界面#

打开Inky,界面会分成两个页面,左边是编写Ink语言的地方,右边则是预览页面。你编写的脚本的运行结果会实时同步在上面。

你可以在界面上方的Help选项里查看Inky内置的Ink语言文档,不过是全英文的。

尝试编写Ink脚本#

Inky会在刚打开软件时显示一段初始代码,你可以看一看这段代码预览的结果,其中Once upon a time...以文本形式打印,There were two choices.``There were four lines of content.则变成了两个选项。下面我们开始学习Ink的语法

Ink语法#

内容(普通文字)#

在Ink上写普通的文本就和HTML一样,直接写下文本,最终会原封不动地打印出来。上文的Once upon a time...就是这样。

选项#

使用*标记这是一个选项,语法是*+选项+选了选项后出现的内容例如:

* 这是一个选项
这是你选了这个选项后面出现的内容。

选项后面的内容都是选择这个选项后出现的内容,直到遇到了跳转符号或者另一个选项或者结尾。

你可以理解为这是一个switch-case,如果不遇到break或return的话就永远不会结束。

节点#

节点是Ink的重要组成部分,它的语法是 ===+节点名称+===,节点后面的内容是节点的内容,例如这样:

=== 一个节点===
这是节点里的内容

在上面的示例中,没有在节点中写的内容叫做无节点内容

我们可以用->来跳转到某一节点,而->END则代表结束当前的剧情。

预览结果:

注意事项#

因为选项中除非遇到跳转符号,否则选项后面的所有内容都是选择选项后执行的内容,这样就会导致最后的->END也会变成一个选项独有。

想要解决这个办法,我们可以用-将阻断选项,例如- ->END,这样不管你选择了哪个选项,最后都会执行->END

这就像编程中的try-catch-finally中的finally,不管其中发生了什么,被-标记的内容都会显示出来

我们将上面的语法组合到一起,就可以写出基础的剧情了。

【Unity】当个小说家!用ink语言编写你的游戏剧情!(一)
https://klqn.top/posts/cv0011/
作者
丘比女王
发布于
2025-08-23
许可协议
CC BY-NC-SA 4.0
封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00