Blueprint —— Events

目录

一,Event Level Reset

二,Event Actor Begin Overlap

三,Event Actor End Overlap

四,Event Hit

五,Event Any Damage

六,Event Point Damage

七,Event Radial Damage

八,Event Actor Begin Cursor Over

九,Event Actor End Cursor Over

十,Event Begin Play

十一,Event End Play

十二,Event Destroyed

十三,Event Tick

十四,Event Receive Draw HUD

十五,Custom Event


        事件(Events) 是从游戏代码中调用的节点, 在 事件图表(EventGraph)中开始执行单独的网络; 它们使蓝图执行一系列操作,对游戏中发生的特定事件(如游戏开始、关卡重置、受到伤害等)进行回应;

        这些事件可在蓝图中访问,以便实现新功能,或覆盖/扩充默认功能;任意数量的 Events 均可在单独 EventGraph 中使用,但每种类型只能使用一个;

        一个事件只能执行一个目标;如果想要从一个事件触发多个操作,需要将它们线性串联起来;

 

一,Event Level Reset

注,此蓝图事件节点仅在关卡蓝图中可用;

        Level Reset 事件在关卡重启时发出执行信号; 它在关卡重新加载后进行某项触发时非常实用,如玩家角色已死亡,但关卡无需重新加载时;

二,Event Actor Begin Overlap

多项条件同时满足时,将执行该事件:

  • Actor 之间的碰撞响应必须允许重叠;
  • 执行事件的两个 Actor 的 Generate Overlap Events 均设为 true;
  • 两个 Actor 的碰撞开始重叠;两者移到一起或其中一个创建时与另一个重叠;

Other Actor:与此蓝图重叠的Actor;

三,Event Actor End Overlap

多项条件同时满足时,将执行该事件:

  • Actor 之间的碰撞响应必须允许重叠;
  • 执行事件的两个 Actor 的 Generate Overlap Events 均设为 true;
  • 两个 Actor 的碰撞停止重叠;它们将分离,或在其中一个将被销毁;

Other Actor:与此蓝图重叠的Actor;

四,Event Hit

        只要其中一个相关 Actor 的碰撞设置中 Simulation Generates Hit Events 设为 true,该事件便会执行;

五,Event Any Damage

注,此蓝图事件节点仅在服务器上执行;在单人游戏中,本地客户端即视为服务器;

        当需要处理一般伤害时,此事件会被传递;如溺水或环境破坏,不是特别的点伤害或径向伤害;

  • Damage,传入 Actor 的伤害量;
  • Damage Type,输出伤害上包含额外数据的对象;
  • Instigated By,负责伤害的对象的控制器(Controller),可是开枪的玩家控制器,或是投手雷造成伤害的 AI控制器;
  • Damage Causer,输出伤害的 Actor,这可以是子弹或爆炸,

六,Event Point Damage

注,此蓝图事件节点仅在服务器上执行;在单人游戏中,本地客户端即视为服务器;

  • Damage,传入 Actor 的伤害量;
  • Damage Type,输出伤害上包含额外数据的对象;
  • Hit Location,应用伤害的位置;
  • Hit Normal,碰撞方向;
  • Hit Component,被命中的执行 Actor 上的组件;
  • Bone Name,命中的骨骼名称;
  • Shot from Direction,伤害来源的方向;
  • Instigated By,负责伤害的 Actor,这是开枪或投手雷造成伤害的 Actor;
  • Damage Causer,出伤害的 Actor,这可以是子弹或爆炸;

七,Event Radial Damage

注,此蓝图事件节点仅在服务器上执行;在单人游戏中,本地客户端即视为服务器;

  • Damage Received,从事件接收的伤害量;
  • Damage Type,输出伤害上包含额外数据的对象;
  • Origin,3D 空间中的伤害来源位置;
  • Hit Info,命中收集到的所有数据,可break以访问数据单个;
  • Instigated By,发起伤害的控制器(AI 或玩家);
  • Damage Causer,输出伤害的 Actor,可以是子弹、火箭、激光或角色的拳击;

八,Event Actor Begin Cursor Over

使用鼠标界面时,鼠标光标在 Actor 上悬停时执行的事件;

九,Event Actor End Cursor Over

使用鼠标界面时,鼠标光标在 Actor 上移开时执行的事件;

十,Event Begin Play

游戏开始时将在所有 Actor 上触发此事件;游戏开始后spawned所有 Actor 上均会立即调用此事件;

十一,Event End Play

Actor 不存在于世界场景中时执行此事件;

  • End Play Reason,说明 Event End Play 被调用原因的枚举;

十二,Event Destroyed

Actor 被销毁时执行此事件;

注,Destroyed 事件将在之后的版本中移除!Destroyed 函数的功能已合并到 EndPlay 函数;

十三,Event Tick

游戏进程中每帧调用的简单事件;

  • Delta Seconds,输出帧之间的时间量;

十四,Event Receive Draw HUD

注,此事件仅限继承自 HUD 类的蓝图类可用;

  • Size X,渲染窗口的像素宽度;
  • Size Y,渲染窗口的像素高度;

十五,Custom Event

Custom Event 节点是拥有自身工作流程的特殊节点;

        和 Events 一样, Custom Events 有一个执行的输出引脚和可选的数据输出引脚;但自定义事件是由用户创建的, 且可在一个图表中多次调用它们;它们定义了一个执行独立网络的入口点, 但不能通过代码调用它们来执行的;而是依赖于 事件图表 的其他部分, 通过使用 Custom Event 调用或者通过 CE 或 KE 控制台命令来显示地执行它们;

        Custom Events 提供了一种创建自己的事件的方法,可在蓝图序列的任何地方调用这些事件;当把多个输出执行线连接到一个特定节点输入执行引脚时, 使用自定义事件可以简化图表的节点连线网络;甚至可在一个蓝图的图表中创建自定义事件,而在另一个图表中调用该事件;

创建自定义事件

 

调用自定义事件

        和常规的 Events 不同,需调用来触发自定义事件;

 

注,和常规的Events不同,常规事件在每个图表中每种事件类型仅能调用一次;但可在图表中多次调用一个自定义事件;这样,自定义事件就可以把多个执行输出分支连入到一个单独的执行输入上,而不需要直接连线;

疑难解答

        如在Custom Event节点上看到 警告! 条,提示 "不能找到名称为[CustomEvent]的函数" 信息,请 编译 蓝图;

        如修改了自定义事件上的输入参数的数量,那么当编译蓝图时,调用该自定义事件的所有节点都会出现错误;必须刷新调用自定义事件的所有节点,要想刷新一个单独节点或者一组选中的节点,请右击这些节点并选择 Refresh Nodes

 

 

### UE4 中实现体积方块效果的方法 在 Unreal Engine 4 (UE4) 中,要实现一个具有体积感的立方体效果并能够检测某个点是否位于该立方体内,可以按照以下方式设计逻辑。 #### 判断点是否处于长方体内 为了判断某一点是否在一个特定的长方体内,需要考虑以下几个因素: 1. **Transform 数据解析** 长方体的位置由 `Location` 表示,其方向通过 `Rotation` 定义(包括 Pitch、Yaw 和 Roll),而大小则由 `Scale` 控制。这些数据共同定义了一个变换矩阵,用于描述长方体的空间姿态[^1]。 2. **转换到局部坐标系** 将待测点的世界坐标转换至长方体的局部空间中。这一步可以通过逆向应用长方体的 Transform 来完成。具体操作如下: ```cpp FVector LocalPoint = LongBox->GetComponentTransform().InverseTransformPosition(WorldPoint); ``` 3. **边界条件验证** 在局部坐标系下,假设长方体是一个轴对齐的包围盒,则只需比较各维度上的范围即可得出结论。如果满足以下不等式,则说明目标点确实落在指定范围内: \[ -\frac{Extent.X}{2} \leq LocalPoint.X \leq \frac{Extent.X}{2} \] 同理适用于 Y 和 Z 方向。 #### 创建带有碰撞功能的体积方块 对于实际的游戏开发需求来说,仅仅依靠上述算法可能不够直观或者高效;因此推荐利用引擎内置的功能来简化流程。 1. **设置静态网格模型及其属性** 使用 Static Mesh Editor 编辑器加载合适的几何图形作为基础结构,并调整它的尺寸参数以匹配预期表现形式[^2]。 2. **配置物理模拟选项** 进入 Details 面板中的 Collision 设置部分,启用 Generate Overlap Events 功能以便后续捕捉事件触发情况。同时可以选择预设好的 Box Collider 或者手动绘制自定义形状。 3. **编写蓝图脚本处理交互行为** 当其他对象进入此区域时执行相应动作——比如改变材质颜色、播放音效等等。以下是伪代码示意如何监听重叠状态变化: ```blueprint Event BeginOverlap(OtherActor) SetMaterialToRed() Event EndOverlap(OtherActor) ResetMaterialColor() ``` 以上就是关于如何基于 UE4 构建具备功能性反馈机制的大致思路概述。 ```python def is_point_inside_box(world_position, box_component): local_pos = box_component.transform.inverse_transform_vector(world_position) extents = box_component.get_bounding_extents() inside_x = (-extents.x / 2 <= local_pos.x <= extents.x / 2) inside_y = (-extents.y / 2 <= local_pos.y <= extents.y / 2) inside_z = (-extents.z / 2 <= local_pos.z <= extents.z / 2) return all([inside_x, inside_y, inside_z]) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值