虚幻引擎学习之对话框逻辑交互

本文介绍了如何在Unity3D中通过DataTable存储对话内容,创建WidgetDialogBox进行对话显示,利用碰撞体和事件系统控制玩家与NPC的交互,包括EventInteractwithNPC事件的触发和对话流程管理。开发者需理解Widget、Structure、Interface和蓝图函数的协作以实现完整对话功能。
摘要由CSDN通过智能技术生成

过程

当主人公靠近NPC时,可按E触发对话,对话使用对话框的形式展示

实现

  • structure以及DataTable的初始化
    DataTable主要用于存放对话内容

    在这里插入图片描述
    在这里插入图片描述

  • 准备Widget

    在这里插入图片描述
    在这里插入图片描述
    DialogBox的蓝图如下

    在这里插入图片描述
    这里增加Delay是防止点击过快导致对话迅速结束

    在这里插入图片描述
    这里简单说一下上图在干什么:

    • 每次点击对话框,则读取DataTable中的内容,然后展示出来
    • row超出预设范围,则关闭对话框remove
  • 创建接口方便函数调用在这里插入图片描述

  • 碰撞体控件、以及按E触发对话提示设置在NPC中,分别对应CapsuleWidget,其中Widget不可视

  • NPC蓝图中自定义接口中的三种函数:
    Event Enter NPCRadius、Event Interact with NPC、Event Leave NPCRadius
    Event Interact with NPC主要实现对话逻辑
    在这里插入图片描述
    碰撞检测逻辑也简单放一下

    在这里插入图片描述

  • 玩家靠近NPC按下E键触发逻辑
    在这里插入图片描述

    简单解释一下:

    • get overlapping actor:获取与指定的class重叠的对象数组,在这里选定的就是与玩家重叠的叫做NPC的对象
    • 将返回得到的数组连接Does Implement Interface来判断在NPC蓝图中是否已经实现了接口函数
    • 判断,已实现则执行交互事件,未实现则不发生

运行

靠近NPC

在这里插入图片描述

按E触发对话

在这里插入图片描述
点击进入下一段对话

在这里插入图片描述
最后一段话再次点击对话框消失
在这里插入图片描述

总结

整个过程并不困难,只是内容比较多,耐心可以完成。
实现对话框可以了解Widget、Structure、Interface、以及蓝图函数之间的调用

说明

以上内容仅为个人理解,有理解偏差还望指出修正

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值