# 其他文字事件
## 显示对话
在不少剧情关卡里面角色都会有聊天的过程,这在编辑器内也是可以轻松实现的,需要的是紫色版块中的**显示对话**功能。
点开后能很清晰地看到文本框,我们就是在这里输入对话。点击右下角的微笑脸可以选择出现的人物立绘:先选择人物,再选择动作。对于使用官方角色的情况下,这是一种比较直观的方法。对于自制角色的立绘表情,将在[这里](../pages/spritesheet.md#选择立绘)介绍,此处暂且不表。
下面的三个设置内容都非常直观,就不再多赘述了。

**需要注意的是:**
**1、**你可以一次性输入多行文本,这样在实际显示时就会在同一对话框内逐步刷新每一行台词;如果使用多个显示对话事件,每个事件只输入一行文本,那么对话框有可能在一个事件之后消失再生成,影响连贯性。
**2、**显示对话事件一次只能显示一个对话框,如果前一个事件的台词没有走完下一个事件就开始了,那么前一个会直接被顶替掉。即使设置为屏幕上方和屏幕下方各一个也会被顶替。
**3、**一个对话框只能显示两行文字,多出来的会无法显示,请注意分段。分段后需要再输入一次立绘人物,否则立绘就不再显示了。
**4、** 如果需要实现像官方教程一样的可以手动跳过的对话框效果,可以添加自定义方法`activeDialogues = true`或`activeDialoguesImmediately = true`。
- 如果启用`activeDialogues = true`,
在对话事件所在小节已经播放完毕而对话仍未结束时,游戏会等待至游戏音乐的下一个小节开始时继续播放;
- 如果启用`activeDialoguesImmediately = true`,
- 如果对话事件结束时所在小节仍然未播放完毕,
游戏会等待至游戏音乐的下一个节拍开始时立即从时间轴的下一个小节继续播放。
- 如果对话事件所在小节已经播放完毕而对话仍未结束,
游戏会等待至游戏音乐的下一个节拍开始时继续播放。
**5、**编辑器会自动识别标点符号,并在标点符号的位置自动添加不同程度的语句停顿,非常智能。但要注意,数学上的小数点“.”是会被判定为英文的句号的,从而产生停顿,非常不智能。
**6、**从外界复制粘贴进入的文本中,换行符是有问题的,要退格两次才能被删掉,否则台词会叠在一起;最好的做法当然是不要复制进多余的换行符号。

**7、**可以使用对话标签控制对话的显示效果,这些标签总是被包裹在中括号里的。支持的标签如下:
- `[vslow]` - 非常慢
- `[slow]` - 慢
- `[normal]` - 正常速度
- `[fast]` - 快
- `[vfast]` - 非常快
- `[shout]` - 闪烁屏幕,高速显示
- `[flash]` - 闪烁屏幕
- `[#]` - 暂停\#秒
- `[shake]` - 让位于该标签后的文本摇晃。
- `[shakeRadius=X]` - 若与 \[shake\] 标签相邻,则设定摇晃的距离。
- `[wave]` - 让文本波浪式摇摆。
- `[waveHeight=Y]`
- `[waveSpeed=X]`
- `[swirl]` - 让文本以圆周运动的方式旋转。
- `[swirlRadius=Y]` - 文本转起来
- `[swirlSpeed=X]`
- `[static]` - 让此前设置移动方式的标签失效,位于该标签后的文本将不受前面的标签影响。
**8、**可以使用颜色标签更改文字的颜色,只需按以下格式输入:`要更改颜色的文字`。代码中的颜色可以使用十六进制颜色值(不透明的 #RRGGBB 或包含透明度信息的 #RRGGBBAA) ,也可以使用[Unity富文本的颜色名](https://docs.unity3d.com/Packages/com.unity.ugui@1.0/manual/StyledText.html):
| 颜色(中文) | 颜色(英文) | RGB | 示例 |
| :--- | :--- | :--- | :--- |
| 黑色 | black | `#000000` | 示例 |
| 银色 | silver | `#c0c0c0` | 示例 |
| 栗色 | maroon | `#800000` | 示例 |
| 红色 | red | `#ff0000` | 示例 |
| 深蓝色 | navy | `#000080` | 示例 |
| 蓝色 | blue | `#0000ff` | 示例 |
| 浅蓝色 | lightblue | `#add8e6` | 示例 |
| 紫色 | purple | `#800080` | 示例 |
| 品红色 | fuchsia / magenta | `#ff00ff` | 示例 |
| 绿色 | green | `#008000` | 示例 |
| 莱姆色 | lime | `#00ff00` | 示例 |
| 橄榄色 | olive | `#808000` | 示例 |
| 黄色 | yellow | `#ffff00` | 示例 |
| 墨绿色 | teal | `#008080` | 示例 |
| 青色 | cyan / aqua | `#00ffff` | 示例 |
| 灰色 | gray | `#808080` | 示例 |
| 橙色 | orange | `#ffa500` | 示例 |
| 白色 | white | `#ffffff` | 示例 |
## 显示状态牌
除了浮动文字和对话框外,游戏里还有两个可以显示文字的事件。**显示状态牌**会在屏幕的左上角弹出一个带文字的状态牌,效果如下:

状态牌的文字只可以显示一行,最好给状态牌文字设计得简洁一点。如果屏幕上已经存在状态牌,新的显示状态牌事件会修改当前状态牌上的文字,并重置状态牌的显示时长。另外,状态牌不会被任何干扰特效遮挡,是可信度最高的提示,非特殊机制,建议不要用来误导玩家判断或作为干扰。
持续时间里的“节拍”可以按,更换为以秒计时。
## 弹幕效果
另一个事件是**弹幕效果**,会刷出一大堆相同的字符串,同样的,只支持输入一行文字。
颜色可以选择单一的颜色,也可以选择随机的彩色。
弹幕移动方向也可以选择从左向右或是从右向左,这是个好文明,弹幕能选择方向之后也许会有些奇效。
