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

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.lryc.cn/news/530360.html

相关文章:

  • 根据接口规范封装网络请求和全局状态管理
  • Unet 改进:在encoder和decoder间加入TransformerBlock
  • work-stealing算法 ForkJoinPool
  • DeepSeek Janus-Pro:多模态AI模型的突破与创新
  • STM32-时钟树
  • hot100_21. 合并两个有序链表
  • 代码讲解系列-CV(一)——CV基础框架
  • C++ Primer 标准库类型string
  • 计算机网络安全与运维的关键 —— 常用端口全解析
  • Vue.js 的介绍与组件开发初步
  • 【仿12306项目】通过加“锁”,解决高并发抢票的超卖问题
  • wow-agent---task4 MetaGPT初体验
  • MVANet——小范围内捕捉高分辨率细节而在大范围内不损失精度的强大的背景消除模型
  • 94,【2】buuctf web [安洵杯 2019]easy_serialize_php
  • LabVIEW如何有效地进行数据采集?
  • 6 [新一代Github投毒针对网络安全人员钓鱼]
  • 《Origin画百图》之脊线图
  • linux 函数 sem_init () 信号量、sem_destroy()
  • Kafka架构
  • 刷题记录 动态规划-2: 509. 斐波那契数
  • RDP协议详解
  • 设计模式的艺术-观察者模式
  • 【C语言设计模式学习笔记1】面向接口编程/简单工厂模式/多态
  • Baklib如何优化企业知识管理提升团队协作与创新能力分析
  • Dubbo view
  • 分享刷题过程中有价值的两道题目
  • 蓝桥杯例题六
  • DeepSeek 详细使用教程
  • 《tcp/ip协议详解》,tcp/ip协议详解
  • 游戏引擎 Unity - Unity 设置为简体中文、Unity 创建项目