UE5 蓝图学习计划 - Day 8:触发器与交互事件
在游戏开发中,触发器(Trigger) 和 交互事件(Interaction Events) 是实现游戏动态交互的关键。例如,当角色接近一扇门时,它可以自动打开,或者当玩家进入特定区域时,游戏触发某个特殊效果。本篇将介绍如何使用 Trigger Box(触发体) 和 蓝图事件,实现场景中的交互逻辑。
理论学习
-
什么是触发器(Trigger)?
触发器是一种特殊的 Collision(碰撞体),它本身不会被渲染,但可以检测角色或其他对象的进入或离开。 -
触发事件(Overlap Events)
触发器通常会使用以下两种 事件(Events):- OnActorBeginOverlap:当物体(如角色)进入触发器时触发。
- OnActorEndOverlap:当物体离开触发器时触发。
-
场景交互的应用
触发器可以用于:- 打开/关闭门
- 触发机关
- 显示 UI 提示
- 激活敌人 AI
实践任务:创建一个触发器,角色进入后自动开门
目标
- 在场景中放置一个 Trigger Box 作为触发区域。
- 创建一扇门,并在角色进入触发区域时让门自动打开。
- 在角色离开触发区域后,让门自动关闭。
步骤 1:创建触发器
-
在 Content Browser(内容浏览器)中,右键 Blueprint Class,选择 Actor 类型。
-
命名为 BP_TriggerDoor,双击打开蓝图编辑器。

-
在 Components 面板中,添加以下组件:
- Static Mesh(静态网格) 作为门的模型,命名为 DoorMesh。
- Box Collision(碰撞体) 作为触发器,命名为 TriggerBox。

步骤 2:设置触发逻辑
-
选中 BP_TriggerDoor,在 Details 面板 中,找到 Events 选项,点击 OnActorBeginOverlap和 OnActorEndOverlap,自动跳转到事件图。

-
将添加的节点连接到 Event BeginPlay。

-
连接以下逻辑:
- OnActorBeginOverlap(进入触发区域)
- 检查进入的 Actor 是否是玩家角色(使用 Cast To BP_PlayerCharacter)。
- 使用 Timeline 控制门缓慢上升(模拟打开)。
- OnActorEndOverlap(离开触发区域)
- 检查离开的 Actor 是否是玩家角色。
- 使用 Timeline 让门缓慢下降(模拟关闭)。

- OnActorBeginOverlap(进入触发区域)
步骤 3:使用 Timeline 创建动画
-
添加 Timeline 节点,并命名为 OpenDoorTimeline。


-
双击打开 Timeline,添加一个 Float Track,设置时间长度为 2 秒。

-
右键添加关键帧

-
在 0 秒 处,添加 0 值的关键帧(门初始位置)。

-
在 2 秒 处,添加 200 值的关键帧(门抬起 200cm)。

-
关闭 Timeline,并在事件图中连接 Set Relative Location 节点,将 DoorMesh 位置 Y 轴调整为 Timeline 输出值。

-
将Timeline的play连接到进入事件上,Reverse连接到离开事件上

步骤 4:测试效果
-
修改DoorMesh的Static Mesh属性,以及缩放

-
将 BP_TriggerDoor 放入场景,并调整 TriggerBox 大小,使其覆盖门前区域。

-
运行游戏并控制角色进入触发区域,观察门是否自动打开。
-
离开触发区域后,门是否自动关闭。

注意事项
- Trigger Box 的大小
- 需要适当调整 TriggerBox 的大小,确保角色进入区域时可以正确触发事件。
- Timeline 速度
- Timeline 控制门的开关速度,如果速度过快或过慢,可以调整时间轴的关键帧数值。
- 防止多次触发
- 可以添加一个 IsDoorOpen 布尔变量,防止在门已经打开时再次触发 OnActorBeginOverlap。
学习收获
通过今天的学习,你已经掌握了:
- 如何使用 Trigger Box 创建触发区域。
- 通过 OnActorBeginOverlap 和 OnActorEndOverlap 实现场景交互。
- 使用 Timeline 让门自动打开和关闭,并可拓展更多交互功能。
下一步学习计划
接下来,我们将学习 场景交互的高级应用,结合 UI 显示、道具拾取和更多动态效果,进一步提升游戏互动性。敬请期待!
相关文章:
UE5 蓝图学习计划 - Day 8:触发器与交互事件
在游戏开发中,触发器(Trigger) 和 交互事件(Interaction Events) 是实现游戏动态交互的关键。例如,当角色接近一扇门时,它可以自动打开,或者当玩家进入特定区域时,游戏触…...
根据接口规范封装网络请求和全局状态管理
封装通用页面接口网络请求 axios (request)封装见:https://blog.csdn.net/XiugongHao/article/details/143449863 /*** 封装通用页面的增删改查接口*/ export function postPageListData(pageName: string, queryInfo: any) {return request.…...
Unet 改进:在encoder和decoder间加入TransformerBlock
目录 1. TransformerBlock 2. Unet 改进 3. 完整代码 Tips:融入模块后的网络经过测试,可以直接使用,设置好输入和输出的图片维度即可 1. TransformerBlock TransformerBlock是Transformer模型架构的基本组件,广泛应用于机器翻译、文本摘要和情感分析等自然语言处理任务…...
work-stealing算法 ForkJoinPool
专栏系列文章地址:https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标: 重点是通过例子程序理解work-stealing算法原理 目录 work-stealing算法算法原理和优缺点介绍使用场景work-stealing例子代码 ForkJoinPoolnew ForkJoinPool(…...
DeepSeek Janus-Pro:多模态AI模型的突破与创新
近年来,人工智能领域取得了显著的进展,尤其是在多模态模型(Multimodal Models)方面。多模态模型能够同时处理和理解文本、图像等多种类型的数据,极大地扩展了AI的应用场景。DeepSeek(DeepSeek-V3 深度剖析:…...
STM32-时钟树
STM32-时钟树 时钟 时钟...
hot100_21. 合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2: 输入:l1 [], l2 [] 输出:[…...
代码讲解系列-CV(一)——CV基础框架
文章目录 一、环境配置IDE选择一套完整复现安装自定义cuda算子 二、Linux基础文件和目录操作查看显卡状态压缩和解压 三、常用工具和pipeline远程文件工具版本管理代码辅助工具 随手记录下一个晚课 一、环境配置 pytorch是AI框架用的很多,或者 其他是国内的框架 an…...
C++ Primer 标准库类型string
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
计算机网络安全与运维的关键 —— 常用端口全解析
目录 前言 常见端口分类及用途 20 端口(FTP 数据传输) 21 端口(FTP 消息控制) 22 端口(SSH) 23 端口(Telnet) 25 端口(SMTP) 53 端口(DNS&…...
Vue.js 的介绍与组件开发初步
Vue.js 的介绍与组件开发初步 Vue.js 的介绍与组件开发初步引言第一部分:Vue.js 基础入门1.1 什么是 Vue.js?1.2 搭建 Vue.js 开发环境安装 Node.js 和 npm安装 Vue CLI创建新项目运行示例 1.3 第一个 Vue.js 示例 第二部分:Vue.js 组件开发基…...
【仿12306项目】通过加“锁”,解决高并发抢票的超卖问题
文章目录 一. 测试工具二. 超卖现象演示三. 原因分析四. 解决办法方法一:加synchronized锁1. 单个服务节点情况2. 增加服务器节点,分布式环境synchronized失效演示 方法二:使用Redis分布式锁锁解决超卖问题1. 添加Redis分布式锁2. 结果 方法三…...
wow-agent---task4 MetaGPT初体验
先说坑: 1.使用git clone模式安装metagpt 2.模型尽量使用在线模型或本地高参数模型。 这里使用python3.10.11调试成功 一,安装 安装 | MetaGPT,参考这里的以开发模型进行安装 git clone https://github.com/geekan/MetaGPT.git cd /you…...
MVANet——小范围内捕捉高分辨率细节而在大范围内不损失精度的强大的背景消除模型
一、概述 前景提取(背景去除)是现代计算机视觉的关键挑战之一,在各种应用中的重要性与日俱增。在图像编辑和视频制作中有效地去除背景不仅能提高美学价值,还能提高工作流程的效率。在要求精确度的领域,如医学图像分析…...
94,【2】buuctf web [安洵杯 2019]easy_serialize_php
进入靶场 可以查看源代码 <?php // 从 GET 请求中获取名为 f 的参数值,并赋值给变量 $function // 符号用于抑制可能出现的错误信息 $function $_GET[f];// 定义一个名为 filter 的函数,用于过滤字符串中的敏感词汇 function filter($img) {// 定义…...
LabVIEW如何有效地进行数据采集?
数据采集(DAQ)是许多工程项目中的核心环节,无论是测试、监控还是控制系统,准确、高效的数据采集都是至关重要的。LabVIEW作为一个图形化编程环境,提供了丰富的功能来实现数据采集,确保数据的实时性与可靠性…...
6 [新一代Github投毒针对网络安全人员钓鱼]
0x01 前言 在Github上APT组织“海莲花”发布存在后门的提权BOF,通过该项目针对网络安全从业人员进行钓鱼。不过其实早在几年前就已经有人对Visual Studio项目恶意利用进行过研究,所以投毒的手法也不算是新的技术。但这次国内有大量的安全从业者转发该钓…...
《Origin画百图》之脊线图
1.数据准备:将数据设置为y 2.选择绘图>统计图>脊线图 3.生成基础图形,并不好看,接下来对图形属性进行设置 4.双击图形>选择图案>颜色选择按点>Y值 5.这里发现颜色有色阶,过度并不平滑,需要对色阶进行更…...
linux 函数 sem_init () 信号量、sem_destroy()
(1) (2) 代码举例: #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <semaphore.h> #include <unistd.h>sem_t semaphore;void* thread_function(void* arg) …...
Kafka架构
引言 Kafka 凭借其独树一帜的分区架构,在消息中间件领域展现出了卓越的性能表现。其分区架构不仅赋予了 Kafka 强大的并行计算能力,使其能够高效处理海量数据,还显著提升了系统的容灾能力,确保在复杂的运行环境中始终保持稳定可靠…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
