添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

一、前言

Dialogue System是一个分支式的统一会话系统。它不需要任何脚本,但它是设计为易于由程序员扩展。

Unity对话系统让你:

  • 用分支逻辑编写交互式对话。
  • 在灵活的、完全可自定义的UI系统中显示会话。
  • 定义玩家要完成的任务/任务。
  • 播放镜头序列,如相机剪辑和音频。
  • 保存和加载游戏,并在场景更改中持久化数据。
  • 使用本地化来显示文本,并在不同的语言中播放剪裁场景。
  • 导入和导出各种格式,如:draft、Chat Mapper和CSV。

效果图:

image


二、下载地址

download.csdn.net/download/q7…


三、正文


1、开始

设置

如果你的项目使用Unity5.x,则您必首先更改为强制文本序列化

  • Edit → Project Settings → Editor
  • 然后改变Asset Serialization到Force Text和Version Control到Visible Meta Files

image

下一步


⑴演示场景

演示场景 演示场景在Plugins ► Pixel Crushers ► Dialogue System ► Demo 播放它,看看对话系统是如何工作的 image

怎么玩

  • 使用箭头键或WASD键移动。
  • 用鼠标看。
  • 查看可交互对象并按下空格键进行交互。
  • 鼠标左键射击。
  • 按“ESC”以打开“暂停”菜单。

演示任务 您可以在演示场景中这样做:

  • 获取发射代码(任务):与一等兵哈特交谈,以获得这一任务。它涉及到在隔壁房间找到一个密码并与计算机进行交互。
  • 敌人进攻(任务):在隔壁的房间里和NPC谈一谈,来完成这个任务。它演示了如何设置基于计数器的任务,在这种情况下是一次杀戮任务。
  • 变更场景与门互动以改变场景。这演示了如何在场景更改中保留数据。
  • 存载小游戏使用“暂停”菜单保存和加载游戏。

⑵概述

对话制度由以下主要部分组成:

  • 对话数据库:包含对话、任务和变量。
  • 对话编辑器:编辑对话数据库。您还可以导入和导出第三方格式。
  • 对话管理器:在运行时管理对话系统活动。提供预制件。
  • 对话UI:显示交互式对话、警报信息、任务日志等。
  • 交互系统:在运行时触发活动,例如启动会话。

对话数据库 dialogue database是一个资产文件,包含会话、任务和用户定义的变量。你通常会使用对话编辑器来编辑其内容,尽管您也可以从其他几种格式中导入内容。

对话数据库包含设计时内容,以及在Unity编辑器中编辑的字段。在运行时,对话系统将对话数据库视为只读数据库;它将对话数据库字段加载到游戏期间可以改变值的地方。

对话编辑器

image 对话管理器 image

对话管理器是您场景中的一个GameObject,它协调所有的对话系统活动并保存对话系统的运行时数据。

对话UI

image

对话系统使用以下UI:

  • 对话UI:运行交互式对话和警报消息。(如上文所示)
  • 任务日志窗口:显示玩家的主动任务和已完成的任务。
  • 任务跟踪器HUD:显示主动任务的跟踪信息。

交互系统

image

对话系统提供与GameObjects交互的组件,并执行诸如开始对话和更新任务状态等操作。

本地化

对话系统支持对话数据库内容和一般UI元素的本地化。

扩展对话系统

虽然对话系统的默认功能非常强大和灵活,但您也可以创建自己的逻辑函数、裁剪场景操作、UI类型等等。这可以在脚本中编写。


⑶快速启动

本节直接跳到使用对话系统创建和运行会话。您将学习如何:

  • 创建对话数据库并编写对话。
  • 设置对话管理GameObject。
  • 开始谈话。
  • 与对象交互。
  • 在对话期间禁用播放器控制。

步骤:

步骤1.创建一个新场景(File → New Scene).

步骤2.拖动预制件Assets ► Plugins ► Pixel Crushers ► Dialogue System ► Prefabs ► Dialogue Manager进入场景:

image

步骤3.这个GameObject已经指向了一个基本的对话UI,我们需要建立一个对话数据库,让我们单击Create:

image

步骤4.在为数据库指定好路径以及名字之后,再次点击对话管理器GameObject。单击Edit按钮或对话系统图标。这将打开“对话编辑器”窗口:

image

步骤5.单击Conversations标签。

  • 单击“+”按钮添加新会话。
  • 右键单击橙色START节点并选择创建子节点。点击子节点,在Inspector面板的Dialogue Text输入“Hello.”字段
  • 右键单击灰色节点("Hello."),选择Create Child Node创建子节点,再次输入"Good Bye."
  • 灰色节点是NPC说的,蓝色节点是玩家说的。你的谈话应如下所示

image

image

步骤6.为玩家创建一个空游戏对象(GameObject → Create Empty)和一个Cube给NPC(GameObject → 3D Object → Cube)。将空游戏对象重命名为“Player”。将Cube重命名为“NPC”,并将其位置设置为(0,0,0),使其在“Game”视图中可见。

步骤7,点击NPC。加一个对话系统触发器: image

步骤8.单击Add Action并选择Start Conversation: image

步骤9.从Conversation下拉,指定Conversation字段为New Conversation 1,并将Player分配给Conversation Actor,NPC分配给Conversation Conversant. image

步骤10.最后,设置Trigger为On Start。这告诉对话系统触发器在场景开始时执行其操作。

image

第11步,现在开始你的第一次对话!对话系统将显示NPC线(“hello.”)。紧随其后的是Player Response菜单,它包含一个选项(“Goodbye.”)。它使用了基本的标准对话UI,这是一个通用模板,您以后可以定制它来查看您想要的任何内容。 image

接下来,我们将使用交互系统开始对话。

步骤12.设置Trigger为On Use。这告诉对话系统触发器在接收OnUse消息时执行其操作,通常来自播放器上的交互组件。 image

步骤13.添加Usable组件。这告诉玩家的交互组件,NPC可被点击的最大使用距离是30 image

步骤14.点击玩家对象并添加一个Selector组件。设置Select At为Mouse Position: image

步骤15.现在再放一遍现场。将鼠标放置在立方体上,以便看到以下黄色消息:

image

这意味着玩家的选择器组件已经检测到NPC的可用组件。按空格键或鼠标右键。 Selector组件将向NPC发送OnUse消息,NPC的对话系统触发器将通过启动会话来响应。

Selector组件和similar 组件,Proximity Selector组件,提供触发对话系统活动的方法。 它们可定制。您可以将它们配置为选择多种不同的方法,而不仅仅是使用鼠标光标。 使用它们也不是强制性的。 如果你愿意,可以使用自己的交互系统或C#代码运行对话系统触发器。

步骤16.您可能注意到Selector组件在会话期间保持活动状态。 在许多情况下,在交谈期间,您会想要禁用选择器和可能的其他组件,如玩家的运动和相机控制。 这样做的一种方法是添加一个对话系统事件组件。 此组件具有在各种对话系统活动上运行的事件。 配置在谈话开始时禁用选择器和谈话结束要重新启用它: image

总结

这个快速启动演示了如何:

  • 创建对话数据库并编写对话。
  • 设置对话管理GameObject。
  • 开始谈话。
  • 与对象交互。
  • 在对话期间禁用播放器控制。





今天给大家介绍一款简单而又强大的多人沙盒游戏开发插件VOXL。 VOXL是一款简单且易于理解的多重体素沙盒游戏,使用Unity的UNET网络系统开发。 由于服务器和客户端是一体的,所以我们不用再费心搭建服务器,会大大提高我们的开发效率。 VOXL目前只包含大约2500行干净、优雅和易于理解的源代码。
Uniy3d开发VR程序的流程(Unity3D)
最近做VR项目比较多,也学习了很多的东西,现在把开发的流程,已经用到的技术以及软件总结一下,分享出来供大家参考,本文内容比较基础,有什么不对的地方,希望大家能指正出来。