UNITY 对话系统

article/2025/10/21 12:36:08

1. 准备工作

创建一个画布(Canvas),画布中创建一个面板(Panel),面板中放个文本框(TEXT)和两个按钮(Button)(一个用于直接关闭,另一个用于点击之后继续说下句话)和一个挂载脚本的空物体(更名为DialogManager);
在这里插入图片描述
在这里插入图片描述

2.写脚本

Asset中创建一个C#脚本,脚本名DialogSystem,将其挂载到DialogManager组件中。

(1)字段
记得要引入命名控件using UnityEngine.UI;

	public GameObject DialogUI; //对话Panelpublic Text DialogText; //Panel的子级Text[TextArea(1,3)] public string[] DialogTextList; //存放对话内容 前面的特性是为了在Inspector窗口中文字区域显示成三行public int currentIndex;//对话数组索引
  • 写好保存后将这个脚本回到unity中给这些变量赋值。
    在这里插入图片描述

(2)写三个方法

	public void CloseDialog() //点击Close执行;关闭对话Panel{DialogUI.SetActive(false);}public void ContinueDialog()    //点击Continue按钮执行;继续下句话{currentIndex++;if (currentIndex < DialogTextList.Length){DialogText.text = DialogTextList[currentIndex];}else{CloseDialog();}}private void OnEnable() //在激活对话面板按钮时触发,目的是为了使索引归0{currentIndex = 0;DialogText.text = DialogTextList[currentIndex];}

CloseDialog方法给buttonClose按钮(具体操作方法是选中ButtonClose按钮,在Inspector窗口中Onclick那里点击加号添加一个事件,将DialogManager拖入如图所示的地方,再在右边的下拉窗口中选择CloseDialog方法,下同)
在这里插入图片描述
ContinueDialog方法给ButtonContinue按钮(操作和上述相同)

3.效果

在这里插入图片描述

4.拓展

  • 细心的小伙伴可以注意到,我是用string类型的数组存储的我要交流的内容对话,还有一种方式是可以读取外部的文本文件(TXT格式,XML格式等等)
  • 我们还可以使用协程技术让一句话逐字显示

这两个内容都在这个链接里(感谢麦扣老师,教会我这么多东西):https://space.bilibili.com/370283072/channel/detail?cid=99057


我博客详细写的这个方法对应的视频是在这里面(感谢Joe老师)
https://www.bilibili.com/video/BV1oV411r7Ts

----------------------------------------------------------------------------------------------------------------------------------------------------------

2021/4/27更

今天发现一款非常好用的对话插件Fungus,可以这样说,这是一个非常方便的插件(不需自己设计UI,几乎不用代码就可以实现对话),详细讲解请跳转:
https://www.bilibili.com/video/BV18t411p7pV?from=search&seid=6279946706141458960


2021/4/28更

问题1

细心的小伙伴肯定已经发现一个问题文字显示模糊,这个问题有很多因素会导致,我只讲我的操作不当的解决办法。
操作不当:我当时肯定是在Canvas下建的Text,则Text的锚点不在不是以Panel为父级(尽管你后来拖进Panel中也不对),所以缩放不准确而导致显示字体的像素较少,从而字体看上去特别模糊。
正确做法:选中Panel,右键添加Text,锚点是这样才对。
在这里插入图片描述
文字显示效果非常清晰
在这里插入图片描述

问题2

如果你的Text部分压盖Button时,你一定要保证在Hierarchy窗口中Text在两个Button上面(Unity公司的设计规定:越靠上UI的优先级越高);如果Text在Button下面的话,则就会把Button压盖导致Button点击无效;
在这里插入图片描述


http://chatgpt.dhexx.cn/article/s7GrnPh5.shtml

相关文章

最新对话系统综述

前言 首先介绍一篇对话系统领域综述最新的paper&#xff0c;写的非常好 2021年南洋理工大学发表的论文&#xff1a; https://arxiv.org/pdf/2105.04387.pdf 第一章&#xff1a;简要介绍对话系统和深度学习。 第二章&#xff1a;讨论现代对话系统中流行的神经模型及其相关工…

前沿重器[25] | 聊聊对话系统:多轮对话

前沿重器 栏目主要给大家分享各种大厂、顶会的论文和分享&#xff0c;从中抽取关键精华的部分和大家分享&#xff0c;和大家一起把握前沿技术。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 近期&#xff0c;我再次总结了我的历史文章…

智能对话系统之多轮对话

序言 以一周前的一条微博作为开始。一周前我讲&#xff1a;相对的&#xff0c;自然语言解析技术已经逐渐不再成为各家广义智能助理产品的核心竞争力&#xff0c;识别用户意图之后所提供的服务开始成为对话机器人差异化的核心。 百度&#xff1a;对话系统的组成 对于一个对话系…

对话系统 | (1) 任务导向型对话系统 -- 对话管理模型研究最新进展

原文链接 作者丨戴音培、虞晖华、蒋溢轩、唐呈光、李永彬、孙健 单位丨阿里巴巴-达摩院-小蜜Conversational AI团队&#xff0c;康奈尔大学 1. 对话管理模型背景 从人工智能研究的初期开始&#xff0c;人们就致力于开发高度智能化的人机对话系统。艾伦图灵&#xff08;Alan …

对话系统笔记

原文链接&#xff1a;https://www.jiqizhixin.com/articles/2020-01-31-7 对话系统一般分为两种&#xff1a;任务型对话系统和闲聊型对话系统。本文主要讨论前者。 任务型对话系统&#xff0c;也称目标导向型对话系统&#xff0c;多用于垂直领域业务助理系统&#xff0c;如微…

深入浅出对话系统——任务型对话系统技术框架

任务型对话系统架构 比如&#xff0c;这是一个任务型订票系统的对话例子。 如果要我们实现一个这样的对话系统&#xff0c;其中有三个最大的难点&#xff1a;理解用户输入、记住对话历史信息、知道要问什么。 首先是要能理解用户的输入&#xff0c;知道用户想什么&#xff1b…

一文读懂智能对话系统

来源&#xff1a;机器学习算法全栈工程师 作者&#xff1a;蒙康 编辑&#xff1a;王抒伟 本文共6050字&#xff0c;建议阅读10分钟。本文带大家理解智能对话系统的研究方法以及未来趋势。 笔者在最近的研究中发现了一篇非常好的有关对话系统的论文&#xff0c;《A Survey on Di…

对话系统 | (8) 任务型对话系统概述

本篇博客主要参考/节选中科院自动化所王唯康博士的博士论文《任务型对话系统中对话管理方法研究》。 文章目录 1. 概述2. 基于管道的任务型对话系统2.1 语言理解模块2.2 对话管理模块2.3 语言生成模块 3. 端到端的任务型对话系统3.1 基于检索的任务型对话系统3.2 基于生成的任务…

对话系统 | (4) 任务型对话系统基础

本篇博客内容主要来自第十四届中国中文信息学会暑期学校暨中国中文信息学会《前沿技术讲习班》— 张伟男、车万翔《任务型对话系统》 PPT下载链接 文章目录 1. 任务型对话系统概述2. 任务型对话系统关键技术自然语言理解对话管理对话状态追踪对话策略优化 自然语言生成端到端…

前沿重器[21] | 聊聊对话系统:概述

前沿重器 栏目主要给大家分享各种大厂、顶会的论文和分享&#xff0c;从中抽取关键精华的部分和大家分享&#xff0c;和大家一起把握前沿技术。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。 近期&#xff0c;我再次总结了我的历史文章…

Xenko C#开源游戏引擎

Xenko是一款用于渲染和 VR 的开源 C&#xff03; 游戏引擎。该引擎具有高度模块化&#xff0c;旨在为游戏制作者提供更大的开发灵活性。Xenko 附带一个编辑器&#xff0c;允许您以直观和直观的方式创建和管理游戏或应用程序的内容。 官方网站&#xff1a;https://xenko.com/ g…

开源游戏引擎整合

2D: Allegro.cc - Main http://www.allegro.cc/ 老牌子了&#xff0c;和SDL同时是很经典两个EG开发组件&#xff0c;最近貌似在和PY进行联合&#xff1f; ClanLib - ClanLib Game SDK http://www.clanlib.org/ CLANLIB是以前听过最复杂最丰富的SDK&#xff0c;看看链接 http://…

开源游戏java引擎_基于Java的开源3D游戏引擎jMonkeyEngine

jMonkeyEngine简介 jMonkeyEngine是一款纯Java语言编写的游戏引擎,继承了Java应用跨平台的特性,而且是开放源代码的,遵循BSD开源协议,BSD开源协议用一句简单的话概括就是你可以用它做任何你想做的事情而不必担心版权问题。 这款游戏引擎在商业游戏中使用的不多,但是笔者觉…

<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvTools(七)—— 终篇总结

2021SCSDUSC 开源游戏引擎 Overload 代码模块分析 之 OvTools&#xff08;七&#xff09;—— 终篇总结 目录 前言回顾1、Eventing2、Filesystem3、Time4、Utils 总结下一个计划 前言 本篇是开源游戏引擎 Overload 模块 OvTools 的最后一篇了。本篇&#xff0c;笔者将对 OvToo…

<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame (一)—— 概况与 .rc 文件

2021SCSDUSC 开源游戏引擎 Overload 代码模块分析 之 OvGame&#xff08;一&#xff09;—— 概况与 .rc 文件 目录 前言OvGame 模块大纲.rc 文件 计划 前言 上一篇&#xff0c;笔者对 Overload 的 OvTools 分析总结完毕&#xff0c;想了解的可前往总结与链接集合自选查看。而…

开源游戏引擎详解

2D: Allegro.cc - Main http://www.allegro.cc/ 老牌子了&#xff0c;和SDL同时是很经典两个EG开发组件&#xff0c;最近貌似在和PY进行联合&#xff1f; ClanLib - ClanLib Game SDK http://www.clanlib.org/ CLANLIB是以前听过最复杂最丰富的SDK&#xff0c;看看链接 http://…

<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(八)—— 终篇总结

2021SCSDUSC 开源游戏引擎 Overload 代码模块分析 之 OvGame&#xff08;八&#xff09;—— 终篇总结 目录 前言回顾1、.rc2、Utils3、Debug4、Core5、Main.cpp 总结 前言 本篇是开源游戏引擎 Overload 模块 OvGame 的最后一篇了。本篇&#xff0c;笔者将对 OvGame 做一个简单…

WickedEngine 开源游戏引擎

GitHub&#xff1a;https://github.com/turanszkij/WickedEngine WordEngEnter是开源跨平台C游戏引擎&#xff0c;支持DX12和Vulkan渲染器的光线跟踪和路径跟踪。Wicked engine既可以作为构建自己游戏引擎的底层框架&#xff0c;也可以作为自己的完全功能引擎&#xff0c;它增强…

Storm-Engine 基于 C++ 的开源游戏引擎

Storm Engine 是《海狗》和《加勒比海盗》等游戏背后的游戏引擎&#xff0c;该游戏引擎已在 GPLv3 许可下开源。源代码仅包括游戏引擎&#xff0c;并不包括上述游戏的源代码 支持的游戏 海狗加勒比海盗海盗时代 构建项目 需要安装 Conan 并将其添加到%PATH%环境变量中。此外…

阿里自主研发的互动游戏引擎Hilo开源啦!【内有详解】

Hilo&#xff0c;一套HTML5跨终端的互动游戏解决方案。Hilo支持了多届淘宝&天猫狂欢城等双十一大型和日常营销活动。内核极简&#xff0c;提供包括DOM&#xff0c;Canvas&#xff0c;Flash&#xff0c;WebGL等多种渲染方案&#xff0c;满足全终端和性能要求。支持多种模块范…