当前位置: 首页 > article >正文

UE5 蓝图学习计划 - Day 8:触发器与交互事件

在游戏开发中,触发器(Trigger) 和 交互事件(Interaction Events) 是实现游戏动态交互的关键。例如,当角色接近一扇门时,它可以自动打开,或者当玩家进入特定区域时,游戏触发某个特殊效果。本篇将介绍如何使用 Trigger Box(触发体) 和 蓝图事件,实现场景中的交互逻辑。

理论学习

  1. 什么是触发器(Trigger)?
    触发器是一种特殊的 Collision(碰撞体),它本身不会被渲染,但可以检测角色或其他对象的进入或离开。

  2. 触发事件(Overlap Events)
    触发器通常会使用以下两种 事件(Events):

    • OnActorBeginOverlap:当物体(如角色)进入触发器时触发。
    • OnActorEndOverlap:当物体离开触发器时触发。
  3. 场景交互的应用
    触发器可以用于:

    • 打开/关闭门
    • 触发机关
    • 显示 UI 提示
    • 激活敌人 AI

实践任务:创建一个触发器,角色进入后自动开门

目标

  • 在场景中放置一个 Trigger Box 作为触发区域。
  • 创建一扇门,并在角色进入触发区域时让门自动打开。
  • 在角色离开触发区域后,让门自动关闭。

步骤 1:创建触发器

  1. 在 Content Browser(内容浏览器)中,右键 Blueprint Class,选择 Actor 类型。

  2. 命名为 BP_TriggerDoor,双击打开蓝图编辑器。
    在这里插入图片描述

  3. 在 Components 面板中,添加以下组件:

    • Static Mesh(静态网格) 作为门的模型,命名为 DoorMesh。
    • Box Collision(碰撞体) 作为触发器,命名为 TriggerBox。
      在这里插入图片描述

步骤 2:设置触发逻辑

  1. 选中 BP_TriggerDoor,在 Details 面板 中,找到 Events 选项,点击 OnActorBeginOverlap和 OnActorEndOverlap,自动跳转到事件图。
    在这里插入图片描述

  2. 将添加的节点连接到 Event BeginPlay。
    在这里插入图片描述

  3. 连接以下逻辑:

    • OnActorBeginOverlap(进入触发区域)
      • 检查进入的 Actor 是否是玩家角色(使用 Cast To BP_PlayerCharacter)。
      • 使用 Timeline 控制门缓慢上升(模拟打开)。
    • OnActorEndOverlap(离开触发区域)
      • 检查离开的 Actor 是否是玩家角色。
      • 使用 Timeline 让门缓慢下降(模拟关闭)。
        在这里插入图片描述

步骤 3:使用 Timeline 创建动画

  1. 添加 Timeline 节点,并命名为 OpenDoorTimeline。
    在这里插入图片描述
    在这里插入图片描述

  2. 双击打开 Timeline,添加一个 Float Track,设置时间长度为 2 秒。
    在这里插入图片描述

  3. 右键添加关键帧
    在这里插入图片描述

  4. 在 0 秒 处,添加 0 值的关键帧(门初始位置)。
    在这里插入图片描述

  5. 在 2 秒 处,添加 200 值的关键帧(门抬起 200cm)。
    在这里插入图片描述

  6. 关闭 Timeline,并在事件图中连接 Set Relative Location 节点,将 DoorMesh 位置 Y 轴调整为 Timeline 输出值。
    在这里插入图片描述

  7. 将Timeline的play连接到进入事件上,Reverse连接到离开事件上
    在这里插入图片描述

步骤 4:测试效果

  1. 修改DoorMesh的Static Mesh属性,以及缩放
    在这里插入图片描述

  2. 将 BP_TriggerDoor 放入场景,并调整 TriggerBox 大小,使其覆盖门前区域。
    在这里插入图片描述

  3. 运行游戏并控制角色进入触发区域,观察门是否自动打开。

  4. 离开触发区域后,门是否自动关闭。
    在这里插入图片描述

注意事项

  1. Trigger Box 的大小
    • 需要适当调整 TriggerBox 的大小,确保角色进入区域时可以正确触发事件。
  2. Timeline 速度
    • Timeline 控制门的开关速度,如果速度过快或过慢,可以调整时间轴的关键帧数值。
  3. 防止多次触发
    • 可以添加一个 IsDoorOpen 布尔变量,防止在门已经打开时再次触发 OnActorBeginOverlap。

学习收获

通过今天的学习,你已经掌握了:

  1. 如何使用 Trigger Box 创建触发区域。
  2. 通过 OnActorBeginOverlap 和 OnActorEndOverlap 实现场景交互。
  3. 使用 Timeline 让门自动打开和关闭,并可拓展更多交互功能。

下一步学习计划

接下来,我们将学习 场景交互的高级应用,结合 UI 显示、道具拾取和更多动态效果,进一步提升游戏互动性。敬请期待!


http://www.kler.cn/a/531545.html

相关文章:

  • 【B站保姆级视频教程:Jetson配置YOLOv11环境(六)PyTorchTorchvision安装】
  • Docker入门篇(Docker基础概念与Linux安装教程)
  • C语言基础系列【2】开发环境搭建
  • 6. 【Vue实战--孢子记账--Web 版开发】-- 主币种设置
  • Hive:窗口函数(1)
  • Android --- handler详解
  • frida 入门
  • 【JavaScript】Web API事件流、事件委托
  • K8S集群部署--亲测好用
  • 使用 Elastic Cloud Hosted 优化长期数据保留:确保政府合规性和效率
  • 33.Word:国家中长期人才发展规划纲要【33】
  • Turing Complete-全加器
  • 使用 Grafana 和 Prometheus展现消息队列性能
  • 【Elasticsearch】硬件资源优化
  • 解锁数据结构密码:层次树与自引用树的设计艺术与API实践
  • FFmpeg:多媒体处理的瑞士军刀
  • Android 深入探究 JSONObject 与 JSONArray:Android 中的数据解析与数组操作全解析
  • 快速提升网站收录:利用网站新闻发布功能
  • 弹性力学部分
  • selenium记录Spiderbuf例题C02
  • 神经网络参数量和运算量的计算- 基于deepspeed库和thop库函数
  • 论文paper(更新...)
  • Apache Hudi数据湖技术应用在网络打车系统中的系统架构设计、软硬件配置、软件技术栈、具体实现流程和关键代码
  • P7497 四方喝彩 Solution
  • Linux+Docer 容器化部署之 Shell 语法入门篇 【Shell 循环类型】
  • Ollama教程:轻松上手本地大语言模型部署