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

相关推荐
知识分享小能手6 小时前
React学习教程,从入门到精通, React 属性(Props)语法知识点与案例详解(14)
前端·javascript·vue.js·学习·react.js·vue·react
茯苓gao9 小时前
STM32G4 速度环开环,电流环闭环 IF模式建模
笔记·stm32·单片机·嵌入式硬件·学习
是誰萆微了承諾9 小时前
【golang学习笔记 gin 】1.2 redis 的使用
笔记·学习·golang
DKPT9 小时前
Java内存区域与内存溢出
java·开发语言·jvm·笔记·学习
aaaweiaaaaaa10 小时前
HTML和CSS学习
前端·css·学习·html
看海天一色听风起雨落11 小时前
Python学习之装饰器
开发语言·python·学习
speop12 小时前
llm的一点学习笔记
笔记·学习
非凡ghost12 小时前
FxSound:提升音频体验,让音乐更动听
前端·学习·音视频·生活·软件需求
ue星空12 小时前
月2期学习笔记
学习·游戏·ue5
萧邀人12 小时前
第二课、熟悉Cocos Creator 编辑器界面
学习