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 显示、道具拾取和更多动态效果,进一步提升游戏互动性。敬请期待!

相关推荐
LightspeedResearch几秒前
冲刺高分!挑战7天一篇GBD DAY1-7
学习
南宫生15 分钟前
力扣动态规划-19【算法学习day.113】
java·学习·算法·leetcode·动态规划
charlie1145141911 小时前
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(绘图设备封装)
c语言·stm32·单片机·学习·oled·嵌入式软件
萝卜青今天也要开心2 小时前
读书笔记-《Redis设计与实现》(二)单机数据库实现(上)
java·数据库·redis·学习·缓存
YYYYYY020203 小时前
ue5笔记(2)
笔记·ue5
qq_428639613 小时前
虚幻基础16:locomotion direction
游戏引擎·虚幻
学问小小谢3 小时前
第21节课:前端构建工具—自动化与模块化的利器
运维·前端·学习·计算机·自动化·电脑·硬件工程
遗憾皆是温柔4 小时前
JavaFX - 3D 形状
java·开发语言·ide·学习·3d
蝴蝶不愿意13 小时前
《苍穹外卖》项目学习记录-Day7添加购物车
学习