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"标签,否则将无法正常进行对话。

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


结束语

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

相关推荐
向宇it24 分钟前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
Heaphaestus,RC2 小时前
【Unity3D】获取 GameObject 的完整层级结构
unity·c#
芋芋qwq2 小时前
Unity UI射线检测 道具拖拽
ui·unity·游戏引擎
tealcwu3 小时前
【Unity服务】关于Unity LevelPlay的基本情况
unity·游戏引擎
大眼睛姑娘5 小时前
Unity3d场景童话梦幻卡通Q版城镇建筑植物山石3D模型游戏美术素材
unity·游戏美术
Thomas游戏开发7 小时前
Unity3D 逻辑服的Entity, ComponentData与System划分详解
前端框架·unity3d·游戏开发
鹿野素材屋9 小时前
Unity Dots下的动画合批工具:GPU ECS Animation Baker
unity·游戏引擎
小春熙子17 小时前
Unity图形学之着色器之间传递参数
unity·游戏引擎·技术美术·着色器
Java Fans1 天前
在Unity中实现电梯升降功能的完整指南
unity·游戏引擎
大眼睛姑娘1 天前
unity运行状态下移动、旋转、缩放控制模型
unity3d