设定变量

首先新建一个新场景,然后像上一节一样将Dialogue Manager这个Prefab拖进Hierarchy里面

然后新建一个Dialogue Database,命名为Dialogue Database_2,在弹出的DIalogue窗口中点击打开Actor选项卡,添加一个Actor命名为Detective

添加Detective

选中这个选项卡中的Player,在inspector窗口中勾选“Use Display Name”,然后在DisPlay Name输入框中输入“Mr.Smith”。

然后选中Variables选项卡中,添加一个Boolean类型的变量,并命名为“At Work”,可以添加Description为“Player said he was at work”

添加对话变量

编辑对话节点

然后进入Conversations选项卡,点击加号新建一个Conversation,并在inspector窗口中将“Title”设置为Questioning,

修改对话标题

我们选中Start节点,右键新建子节点,在子节点的DialogueText中,我们使用“var MarkUp Tag”来代替Palyer的名字。

输入“有时间吗,[var=Actor]?”

输入Dialogue Text

然后再继续新建子节点,在新建的子节点中,我们的Actor是自动逆转的,我们可以点击右侧的按钮来保持当前对话的对象不变,我们保持“Detective”对话的状态

保持对话对象不变

在Dialogue Text中输入“昨天晚上九点的时候你在哪里?”

这时我们再创建两个子节点,分别输入“我在家呢”和“我在加班”,这两个节点是平行节点。

平行节点

再新建一个子节点,连接到两个平行节点上,输入“Lacy Devine在你的商店里死掉了,推测死亡时间为昨晚9点”

新建子节点,输入“我在家睡大觉呢”

新建两个平行节点,分别输入“OK,那没你的事了”和“你不是说过你在加班吗?你被逮捕了!”

在“你被逮捕了”节点新建两个平行节点,分别是“我需要一个律师!”和“【逃跑】”

整体对话

点击“我在加呢”节点,在inspector的Script选项中,点击右侧的点点点,然后再点击“Set”旁边的加号,设定Variable——At Work——False,最后点击“Apply”

设定Script

同样地,我们设置“我在加班”节点为true

点击“Ok,那没你的事了”节点,在Inspector的Conditions选项中,点击右侧的点点点,然后再点击加号,设定Variable——At Work——False,最后点击“Apply”

Condition选项

设定emphasis

选择“【逃跑】”节点,修改Dialogue Text为“[em1]【逃跑】[/em1]”

然后在Dialogue窗口中选中Database选项卡,在“Database Properties”选项中打开“Emphasis Settings”,并修改Emphasis1,改一下颜色并修改为斜体

修改Emphasis1

测试对话

在Hierarchy窗口中新建空对象,添加Dialogue System Trigger组件,将“Trigger”设置为On Start,点击“Add Action”——“Start Conversation”,并选择“Questioning”。