Unity3d简单对话系统的实现——使用Dialogue editor完成对话系统

目录

前言

使用方法

[1.下载dialogue editor](#1.下载dialogue editor)

2.新建空物体

3.对对话内容进行编辑

4.对话画布建立

5.触发对话框代码

结束语


前言

今天是坚持写博客的第21天,很高兴自己可以坚持,也希望能与大家一起进步。我们今天来看unity3d当中的一个可以轻松实现对话的插件------dialogue editor,希望对大家有帮助!


使用方法

今天我们不废话,直接进入正题。下面是使用dialogue editor的具体步骤:

1.下载dialogue editor

我们先进入unity3d的资源商店,直接搜索dialogue editor,就可以找到这个免费的插件,如下图所示:

在下载完成后,我们进入unity进行import导入。导入后我们可以在project面板当中确认是否已经导入成功,若导入成功,会出现如下图的资源:

2.新建空物体

导入完成后,我们需要设置一个空物体,并命名为Robot Conversation,并在Inspector面板添加NPC Conversation 的组件来启动对话。

3.对对话内容进行编辑

选择菜单栏的windows栏目,进入dialogue editor。

随后进入面板后,插件中默认有"语言"和"选项"两个方案供大家选择。在"语言"中,大家可以设置当前对话对象的名字、说话的内容等,也可以设置他的头像、对话内容的字体等,还可以设置对话之后触发的事件等:

也可以选择"选项"面板,在这里等于给出分支路口,可以设置交互行为,让玩家不单单是点击进行下一句话,来阅读整个对话。

PS:在选项后可以继续接对话,对话后也可以接对话,但是选项后不能接选项。

4.对话画布建立

建立一个UI画布作为对话画布,画布命名为ConversationCanvas。在conversation scaler当中可以设置对话画布的大小。同时我们需要把最开始下载的插件当中的"canvasmanager"拖到canvas下并作为其子物体。

5.触发对话框代码

首先我们可以建立一个cube,并调整它为一个扁平的长方体作为"踏板",命名为conversationtrigger。关闭mesh renderer,保证is trigger被选中。

添加一个叫conversation starter的脚本,进入编辑。首先我们需要导入"using Dialogue editor"的头文件(因为是C#语言所以引入是这样的格式。随后写下如下函数:

cs 复制代码
private void OnTr1ggerstay(Collider other){
    if (other.CompareTag("Player"){
        if(Input.GetKeyDown(KeyCode.F)){
            ConversationManager.Instance.StartConversation(myConversation);
        }
    }
}

其中我们以按下F键为例,大家有其他喜欢的按键也可以替换"keycode"后面的字母。

6.其他工作

最后我们需要回到conversationtrigger,将robot Conversation拖入第二格:

我们还需要保证我们操纵去触发"踏板"的对象或人物需要有一个"Player"标签,否则将无法正常进行对话。

最后我们把代码和程序进行保存。保存后我们开始运行,走进踏板后,就可以按下按钮进行交互和对话了。


结束语

今天和大家的分享就到这里,希望对大家有所帮助,如果有所帮助,希望您可以留下点赞、关注或收藏,谢谢!

相关推荐
SmalBox7 小时前
08-04-热更新-首包资源策略
unity3d·游戏开发
tealcwu8 小时前
【Unity基础】为什么游戏需要物理按键映射?从 Unity Input Manager 到跨引擎输入设计
java·游戏·unity
tealcwu1 天前
【Unity高级】Unity URP:构建同时支持 2D 与 3D 场景的项目完全指南
3d·unity·游戏引擎
淡海水1 天前
10-01-互操作-C#与C++边界的内存管理
unity·c#·游戏引擎·.netcore·gc
小小数媒成员1 天前
UGUI原理(一)
开发语言·游戏·unity·游戏引擎
暴走约伯1 天前
【VFX工具链源码拆解 04】拯救丢失的绑定:Timeline 一键克隆与层级相对路径重映射算法
unity·c#·游戏引擎·硬件工程
SmalBox1 天前
08-03-热更新-边玩边下载
unity3d·游戏开发
小小数媒成员1 天前
Unity UGUI布局组件(LayoutGroup、ContentSizeFitter、LayoutElement)详解
unity·游戏引擎
tealcwu1 天前
【Unity基础】Unity输入与Time.deltaTime的使用原则
unity·游戏引擎
郝学胜-神的一滴2 天前
AI 编程智能体 22:解析器赋能与实战落地全指南
人工智能·程序人生·游戏·unity·游戏引擎