网站改标题关键词描述,物流信息平台,梧州论坛蒙山,杭州做网站比较出名的公司有哪些目录
1.对话结构的设计#xff08;重点#xff09;
2.NPC对话接口的实现
2.1创建类型为pawn的蓝图
2.2创建对话接口
3.对话组件的创建
4.对话的UI设计
4.1UI_对话内容
4.2UI_对话选项 4.3UI_对话选项框
5.对话组件的逻辑实现 通过组件蓝图#xff0c;也就是下图中的…目录
1.对话结构的设计重点
2.NPC对话接口的实现
2.1创建类型为pawn的蓝图
2.2创建对话接口
3.对话组件的创建
4.对话的UI设计
4.1UI_对话内容
4.2UI_对话选项 4.3UI_对话选项框
5.对话组件的逻辑实现 通过组件蓝图也就是下图中的那个东西实现对话系统 对话系统的实现思想在角色面前判断一个球形中所有实现了对话接口的Pawn如果该Pawn实现了对话接口则显示该Pawn的姓名走到一个角色面前会显示他叫什么然后点击他的姓名会开始后续的对话。
首先创建一个第三人称游戏项目 1.对话结构的设计重点
难点对话结构的理解
定义我们的对话的结构使用结构体定义 一个是文本类型的回答选项一个是命名类型的回复 并且为其创建对话表。 定义对话行一个对话行包括回答选项数组和回复数组但是一个回答选项对应一个回复索引对应。一个回复即是NPC需要回复的内容又是下一轮对话的索引。 整体的对话的逻辑如下
1.走到角色面前显示NPC姓名
当角色走到甘雨面前时会弹出第一行的回答选项甘雨
2.点击姓名开始对话
点击甘雨后NPC回复怎么了旅行者。
3.显示能选择的对话选项并产生后续对话
并同时将怎么了旅行者。作为命名搜索这个表找到行命名为怎么了旅行者。的哪一行同时创建回答选项风魔龙怎么打深渊怎么走可以和我出去逛逛吗三个选项三个选项对应三个回复三个回复作为命名再去寻找后续的对话行
2.NPC对话接口的实现
2.1创建类型为pawn的蓝图 2.2创建对话接口
创建对话功能的接口蓝图 返回NPC总类并将自身返回出去 然后生成NPC总类的子蓝图
并为子蓝图绑定对话数据表格和NPC的姓名
3.对话组件的创建
创建对话组件 4.对话的UI设计
对话中的UI主要包含三种NPC显示回复内容的UI_对话内容生成对话选项的UI_D对话选项框还有每一个选项对应的按钮(UI_对话选项) 4.1UI_对话内容 选中对话文本提升为变量
该UI控件只有一个方法就是更新对话内容并显示 4.2UI_对话选项 添加三个公开变量
对话组件构造这个对话选项的时候拿到对话控件告诉对话控件本次回复的对话索引是多少。
对话选项显示这个按钮中的对话文本
该对话索引的索引这条对话选项对应的索引一个对话选项对应一个回复 在构造时显示该选项的对话文本 点击按钮时告诉对话组件该条回复的索引是什么 打开对话组件实现一下设置当前回复索引 4.3UI_对话选项框
选中覆层的大小到内容当有对话选项的时候就可以自适应选择框的大小了 样式如下 将对话选项框提升为变量 在图表中添加一个变量 该UI控件也只有一个自定义事件事件的输入是文本类型的数组就是对话选项拿到对话选项的数组后更新我们的对话框中的选项 5.对话组件的逻辑实现(重点)
打开对话组件
在开始事件时创建一个定时器事件每一秒获取一下前面的可交互的对象以及初始化一下对话的内容框和选项框UI 初始化内容框和选项框中的图表 接下来实现每一秒获取前面的对象信息 获取对话对象中的图表
获取组件的拥有者对其前面75像素为球心75像素为半径的范围进行多球体判断将所有的pawn找出来。 将查找失败的支线输出方便后面使用 将所有命中结果遍历并将实现了对话功能的对象取出执行接口中的函数获取对话对象将获取的对象提升为变量 获取对象陈工后后续的对话情景和显示对话对象都是针对这个对象的所以使用do once只执行一次 获取对话情景 如果没有检测到对象则不显示UI 显示对话对象这个时候当前这句话对应甘雨对话表的第一句回复选项只对象名称甘雨这个时候靠近我们的可对话对象就会显示对象的名称 如4.2所讲点击回答按钮后执行会将按钮的索引传递过来按钮的索引对应这当前回复的索引 然后调用更新对话内容对整个对话内容进行更新 根据索引更新NPC的对话内容 整体逻辑大致的差不多如下图所示
难点在于回答的选择对应了一条NPC的回复NPC会根据这条回复再去查找下一次的对话内容