最终效果演示
前言
Yarn Spinner 是一个对话系统,可让您以简单的、类似剧本的格式编写交互式对话,该对话可以加载到您的游戏中并运行。
当对话正在运行时,Yarn Spinner 会发送要显示的游戏对话行 、供玩家选择的选项以及用于在您的场景中发生事情的命令 。
- github地址:https://github.com/YarnSpinnerTool/YarnSpinner-Unity
- gitee地址:https://gitee.com/unity_data/YarnSpinner-Unity
- 文档:https://docs.yarnspinner.dev/yarn-spinner-for-unity/assets-and-localization/inbuilt-localisation
从 Unity Package Manager 进行安装
安装方式其实有很多种,但是我推荐像正常安装来自 Unity Asset Store 中购买的包一样安装 Yarn Spinner
。
注意:从 OpenUPM 获取插件包要求您的项目使用的最低版本至少为 Unity 2020.1 ,如果您的项目使用更早期的 Unity版本,那么推荐从 Github 安装。
1、添加仓库配置
打开管理界面 Edit/Project Settings/Package Manager
Name:OpenUPM
URL:https//package.openupm.com
Scope(s):dev.yarnspinner
添加仓库配置
2、安装 Yarn Spinner 包
然后我们可以打开管理界面 Edit/Windows/Package Manager
,点击安装
使用实例
1、创建 Yarn Script
在项目窗口右键,菜单中找到 Create -> Yarn Spinner -> Yarn Script
, 然后点击创建即可。
2、创建Yarn Project 文件
我们可以像前面一样通过在项目窗口右键 Create -> Yarn Spinner -> Yarn Project
创建Yarn Project
文件。也可以直接通过的点击前面创建的Yarn Script
文件的 Create New Yarn Project...
按钮进行快捷创建。
新创建的工程文件也会自动地与我们的脚本文件产生绑定。
Yarn Project 代表一个文本工程,主要用于绑定一系列的 Yarn 脚本,同时也可以配置其他例如本地化、语音等。
其中,Source Yarn Scripts 表单用以指示该 Project 如何寻找到对应的脚本文件,正常情况下,Yarn Project 会根据该规则在目录下自动索引 Yarn Script 文件。
可以通过以下符号来自定义 Yarn Project 对脚本文件的索引规则。
符号 | 描述 | 示例 |
---|---|---|
* | 任意文件名 | “*.yarn” 将匹配任意的 .yarn 文件 |
**/* | 所有文件,且包含子目录中的文件 | **/*.yarn 将匹配本目录包括子目录下的所有 .yarn 文件 |
.. | 父目录 | ../*.yarn 将匹配父目录下的所有 .yarn 文件 |
这里如果我们只想关联我们前面创建的NewYarnScript脚本,可以修改为./NewYarnScript.yarn
3、创建Dialogue System对话系统
在层级窗口,点击创建
会创建一个预制件,该预制体已经包含一套完整的对话系统,包括UI等。
4、给Dialogue Runner绑定Yarn Project 数据
注:Dialogue Runner 是 Yarn Spinner 的管理器组件,该组件负责加载、运行和管理 Yarn Project中的内容,从中读取 Yarn Script,并在游戏时将脚本中的内容传递给其他游戏元素,如GUI等。
5、开启自动启动对话系统并配置开始节点
6、运行游戏查看效果
完美运行,是不是很简单?
7、编写 yarn 脚本,自定义对话内容
Yarn Script
即为 Yarn 格式的脚本、或称台本文件,在游戏中的对话内容将主要书写在该文件中。
其实Yarn Spinner 是一种专门为游戏对话设计的脚本语言(类似 Markdown 的语法),用于编写分支对话、条件逻辑和交互叙事内容。它的核心是一个独立于游戏引擎的文本标记语言。它是完全独立的个体。查看文档我们也可以发现,Yarn Spinner不止可以用在unity,还可以用在其他引擎。
为了让 Yarn 脚本在 Unity 中运行,需要借助 Yarn Spinner Unity 插件。这个插件充当了“桥梁
”。
Yarn的语法我就不多介绍了,具体可以查看相关文档,这里我直接写一个例子,如下:
title: Test1
---
Yarn Spinner is a language for writing conversations in games!
For example, here's a choice between some options!
-> Wow, some options!
You got it, pal!
-> Can I put text inside options?
You sure can!
For example, here's some lines inside an option.
You can even put options inside OTHER options!
-> Like this!
Wow!
-> Or this!
Incredible!
You can also write 'commands', which represent things that happen in the game!
===
我们可以前往网站:https://try.yarnspinner.dev/,预览我们编写的 Yarn Spinner 脚本对话,点击RUN
即可。
Yarn的语法还是很简单的,聪明如你,相信不需要我过多的解释,你应该都大致懂得如何编写自己的对话了。
8、运行效果
对话的节点名我们修改了,记得要先对应的修改一下Start Node
运行效果
9、按键控制
们可以使用 Line Advancer 组件实现用按键操作对话前进。Dialogue System下面默认其实已经有一个子对象添加了该组件了
这里指space按键控制快进对话,esc按键进入下一行对话。我们可以修改它的参数,实现不同的按钮控制。
10、设置本地化及多语言对话
Yarn Project
的Localisation
表单就是配置该工程的本地化的。
10.1 给Yarn Scripts添加行标签
默认我们是没有给Yarn Scripts添加行标签的,这是我们需要先点击Add Line Tags to Yarn Scripts
按钮即可
效果,会自动在每行的后面添加一个唯一的标签,这个标签其实可以理解为一个唯一的主键id,用于区分不同行数据
10.2 将字符串和元数据导出为CSV格式
导出的csv数据就包含了对话信息,我们给每段对话的后面加上一个new
字作为区分,类比另一种语言
我们修改文件名为Project_en
10.3 新增一种语言English
在Yarn Project文件新增一种语言English
,并配置Strings File
为我们前面创建的Project_en
对话文本
10.4 切换语言
在Dialogue System
新增脚本组件Builtin Localised Line Provider
,并绑定到Line Provider
参数,用于控制显示哪种对话语言文本,这里切换为我们新建的English:(en)
语言。
如果你想在运行时选择语言,只需要通过代码控制组件Builtin Localised Line Provider
的切换即可。
10.5 运行效果
可以看到,对话文本都变成了new文本了
11、切换音频
配置Yarn Project对应的Assers Folder
数据即可,注意音频文件名要和#line
标签对应上。
切换音频和前面多语言类似,也是在Dialogue System
新增脚本组件Builtin Localised Line Provider
,Asset Locale Code
参数就是用于控制显示哪个音频,比如这里切换为English:(en)
音频。
专栏推荐
完结
好了,我是向宇
,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。
赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注
,你的每一次支持
都是我不断创作的最大动力。当然如果你发现了文章中存在错误
或者有更好的解决方法
,也欢迎评论私信告诉我哦!