主要内容
前言
功能简介
使用方法
补充说明
正文
1. 前言
本工具为了实现一个简易NPC对话系统,为尽量便捷开发者工作而设计。本想使用现成工具,然而因为部分原因,最终还是选择了自己搭建。虽然说自己搭建,但是对白的核心逻辑仍是参考了大佬的,附上我参考的视频: How to make a Dialogue System in Unity,在此对大佬表示感激与崇敬。附上我的代码链接 Super Dialogue。
2. 功能简介
- 从指定文件夹中读取XML文件读取文本信息
- 根据XML文件中的信息对数据进行读取通过UI输出
- 文本显示与图案显示
- 效果示意图
3. 使用方法
- 若要引入新角色(人物或者物品),则将其图案放在默认为
Resources/Images/NPC
文件夹内,并且请在NPCEnumMgr
添加属于该角色的NPC_TYPE
枚举,并且注意该枚举类型名即该角色的名称,图案和文本都要使用此处枚举的名字,否则会出错。
放置枚举示例:public enum NPC_TYPE { Player, Box, }
-
若要添加新剧情,请在
Resources/Text/Dialogue/
路径下进行添加XML文件,在Dialogs/Dialog
的name
结点内添加该角色的名称,也就是之前所说的添加的那个枚举。在Dialogs/Dialog
的info
结点内添加他说的话的文本,注意不要过长。
XML文件内容示例:
-
在你要写的NPC的类里添加一个
Dialogue
变量,并且将此处对白对应的相对Resources/Text/Dialogue/
的路径赋值给这个变量的event_name
成员。 -
在你会触发对白逻辑的物体上挂载
DialogueTrigger
脚本,并且将此处对白对应的相对Resources/Text/Dialogue/
的路径赋值给这个脚本变量的Dialogue.event_name
成员。触发对白时调用其TriggerDialogue
方法即可。 - 建议使用
CLX Toolkit/Super Dialogue/Prefab/
内的Super Dialogue Canvas
预制体作为UI界面进行更改使用。
4. 补充说明
- NPC的图片路径可在
NPCImagesMgr
脚本内进行更改(默认无需变更)。 - 对白信息路径在
DialogueManager
脚本内进行更改。 - 通过UI按钮或者按键调用
DialogueManager.Instance.DisplayNextSentence ()
方法即可阅读对白中的下一句对白。 DialogueManager.Instance.StartDialogue(Dialogue dialogue)
是用来调出UI界面并且将对白数据读入的。- UI界面的子物体要求请阅读
EventDialogueUI
脚本的注释。 - 通过修改
EventDialogueUI
脚本的SetDialogue
和EndDialogue
方法内容来切换动画播放。 - 可以参考
CLX Toolkit/Super Dialogue/Main
场景进行学习。