条件对话
设定变量
首先新建一个新场景,然后像上一节一样将Dialogue Manager这个Prefab拖进Hierarchy里面
然后新建一个Dialogue Database,命名为Dialogue Database_2,在弹出的DIalogue窗口中点击打开Actor选项卡,添加一个Actor命名为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]?”
然后再继续新建子节点,在新建的子节点中,我们的Actor是自动逆转的,我们可以点击右侧的按钮来保持当前对话的对象不变,我们保持“Detective”对话的状态
在Dialogue Text中输入“昨天晚上九点的时候你在哪里?”
这时我们再创建两个子节点,分别输入“我在家呢”和“我在加班”,这两个节点是平行节点。
再新建一个子节点,连接到两个平行节点上,输入“Lacy Devine在你的商店里死掉了,推测死亡时间为昨晚9点”
新建子节点,输入“我在家睡大觉呢”
新建两个平行节点,分别输入“OK,那没你的事了”和“你不是说过你在加班吗?你被逮捕了!”
在“你被逮捕了”节点新建两个平行节点,分别是“我需要一个律师!”和“【逃跑】”
点击“我在加呢”节点,在inspector的Script选项中,点击右侧的点点点,然后再点击“Set”旁边的加号,设定Variable——At Work——False,最后点击“Apply”
同样地,我们设置“我在加班”节点为true
点击“Ok,那没你的事了”节点,在Inspector的Conditions选项中,点击右侧的点点点,然后再点击加号,设定Variable——At Work——False,最后点击“Apply”
设定emphasis
选择“【逃跑】”节点,修改Dialogue Text为“[em1]【逃跑】[/em1]”
然后在Dialogue窗口中选中Database选项卡,在“Database Properties”选项中打开“Emphasis Settings”,并修改Emphasis1,改一下颜色并修改为斜体
测试对话
在Hierarchy窗口中新建空对象,添加Dialogue System Trigger组件,将“Trigger”设置为On Start,点击“Add Action”——“Start Conversation”,并选择“Questioning”。