一键完成对话需求?这款插件你不能错过(Unity3D)(一)

简介: Dialogue System是一个分支式的统一会话系统。它不需要任何脚本,但它是设计为易于由程序员扩展。Unity对话系统让你:• 用分支逻辑编写交互式对话。• 在灵活的、完全可自定义的UI系统中显示会话。• 定义玩家要完成的任务/任务。• 播放镜头序列,如相机剪辑和音频。• 保存和加载游戏,并在场景更改中持久化数据。• 使用本地化来显示文本,并在不同的语言中播放剪裁场景。• 导入和导出各种格式,如:draft、Chat Mapper和CSV。

一、前言

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

Unity对话系统让你:

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

效果图:

网络异常,图片无法展示
|


二、下载地址

download.csdn.net/download/q7…


三、正文


1、开始

设置

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

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

网络异常,图片无法展示
|

下一步


⑴演示场景

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

网络异常,图片无法展示
|

怎么玩

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

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

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

⑵概述

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

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

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

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

对话编辑器

网络异常,图片无法展示
|
对话管理器
网络异常,图片无法展示
|

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

对话UI

网络异常,图片无法展示
|

对话系统使用以下UI:

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

交互系统

网络异常,图片无法展示
|

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

本地化

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

扩展对话系统

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


⑶快速启动

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

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

步骤:

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

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

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

步骤5.单击Conversations标签。

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

网络异常,图片无法展示
|

网络异常,图片无法展示
|

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

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

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

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

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

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

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

网络异常,图片无法展示
|

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

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

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

网络异常,图片无法展示
|

总结

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

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





相关文章
|
6月前
|
传感器 开发工具 vr&ar
ManoMotion⭐二、Unity手势识别插件简介,及效果录屏
ManoMotion⭐二、Unity手势识别插件简介,及效果录屏
|
5月前
|
图形学 C++ C#
Unity插件开发全攻略:从零起步教你用C++扩展游戏功能,解锁Unity新玩法的详细步骤与实战技巧大公开
【8月更文挑战第31天】Unity 是一款功能强大的游戏开发引擎,支持多平台发布并拥有丰富的插件生态系统。本文介绍 Unity 插件开发基础,帮助读者从零开始编写自定义插件以扩展其功能。插件通常用 C++ 编写,通过 Mono C# 运行时调用,需在不同平台上编译。文中详细讲解了开发环境搭建、简单插件编写及在 Unity 中调用的方法,包括创建 C# 封装脚本和处理跨平台问题,助力开发者提升游戏开发效率。
531 0
|
8月前
|
图形学
【推荐100个unity插件之9】分享几个完全免费的2D角色动画生成器(推荐收藏)
【推荐100个unity插件之9】分享几个完全免费的2D角色动画生成器(推荐收藏)
427 0
|
8月前
|
数据可视化 大数据 API
【推荐100个unity插件之22】基于UGUI的功能强大的简单易用的Unity数据可视化图表插件——XCharts3.0插件的使用
【推荐100个unity插件之22】基于UGUI的功能强大的简单易用的Unity数据可视化图表插件——XCharts3.0插件的使用
356 0
|
8月前
|
自然语言处理 搜索推荐 API
【推荐100个unity插件之21】unity实现多语言切换功能——Localization插件的使用
【推荐100个unity插件之21】unity实现多语言切换功能——Localization插件的使用
356 0
|
8月前
|
JSON 开发框架 API
【推荐100个unity插件之20】一个强大的JSON处理库——Newtonsoft.Json(也称为Json.NET)
【推荐100个unity插件之20】一个强大的JSON处理库——Newtonsoft.Json(也称为Json.NET)
624 0
|
8月前
|
图形学
【推荐100个unity插件之19】武器拖尾特效插件——Pocket RPG Weapon Trails(2d 3d通用)
【推荐100个unity插件之19】武器拖尾特效插件——Pocket RPG Weapon Trails(2d 3d通用)
175 0
|
8月前
|
数据可视化 C# 图形学
【推荐100个unity插件之18】Unity 新版输入系统Input System的基础使用
【推荐100个unity插件之18】Unity 新版输入系统Input System的基础使用
276 0
|
8月前
|
图形学
【推荐100个unity插件之17】具有可破坏/砍倒unity地形树木能力的破坏系统,实现unity砍树效果 —— DestroyIt - Destruction System
【推荐100个unity插件之17】具有可破坏/砍倒unity地形树木能力的破坏系统,实现unity砍树效果 —— DestroyIt - Destruction System
232 0
|
8月前
|
vr&ar 图形学
【推荐100个unity插件之16】3D物品描边效果——Quick Outline免费插件
【推荐100个unity插件之16】3D物品描边效果——Quick Outline免费插件
290 0