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

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


结束语

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

相关推荐
Madokaly10 小时前
基类 DG.Tweening.Tween的源码解读
unity
Behaviour11 小时前
Unity游戏之Jenkins的安装部署应用
游戏·unity·jenkins
SmalBox12 小时前
【Vertex着色器】Unity实现-从黑洞中生成对象
unity3d·游戏开发·图形学
大Mod_abfun12 小时前
Unity案例10-水晶矿石碰撞碎裂案例
unity·游戏引擎
xcLeigh14 小时前
Unity基础:Input输入系统入门——键盘、鼠标与触摸检测
unity·计算机外设·游戏引擎
GitLqr1 天前
Flutter + Unity 混合开发:用 unity_kit 实现高效的双向通信
flutter·unity3d·全栈
zhchyun20081 天前
【Unity UI 进阶】仿 Element UI 打造企业级 Unity UI 组件库(05)
ui·unity·游戏引擎
SmalBox1 天前
【Vertex着色器】Unity实现-程序性游鱼动画
unity3d·游戏开发·图形学
_zhourui_h_1 天前
Unity EasyECS 五分钟快速上手:只加一个 [ECS]
unity3d