返回 导航

UE5

hangge.com

UE5 - 场景组件的创建与使用详解(附样例)

作者:hangge | 2025-09-25 09:08
    前文我演示了如何创建一个自定义的“Actor 组件”(点击查看),本文接着介绍“场景组件”。“场景组件”是“Actor 组件”的子类,具有“变换”结构(位置、旋转和缩放)。由于具有“变换”结构,场景组件可以附加到另一个场景组件。
   本文我将创建一个名为 BP_CircularMovComp 的场景组件,用于围绕 Actor 旋转。然后, 我们将附加一个静态网格体组件到 BP_CircularMovComp 组件中,以模拟一个旋转的盾牌。 

1,创建项目

为方便演示,这里我们使用“第三人称游戏”模板创建一个项目,创建时勾选“初学者工具包

2,创建场景组件

(1)单击内容浏览器中的“添加”按钮,在列表中选择“蓝图类”选项。 在打开的“选取父类”对话框中选择“场景组件”作为父类。将蓝图命名为 BP_CircularMovComp

(2)在“我的蓝图”面板中创建“浮点”类型的 RotationPerSecondDeltaAngle 变量。

(3)编译蓝图并选择 RotationPerSecond 变量。在“细节”面板中将“默认值”类别中的参数值设置为 180.0。该值以度为单位,因此组件将在 2 秒内完成围绕 Actor 的旋转。 

(4)在“事件图表”中添加如下逻辑:
  • 使用 EventTick 事件为组件创建一个平滑的移动。EventTick 每帧执行一次,它具有 Delta Seconds 参数,该参数用于存储自上次执行 EventTick 以来经过的时间。我们用 Delta Seconds 乘以 Rotation Per Second 变量来计算 Delta Angle,也就是在当前坐标系中旋转的角度的值。
  • 接着使用其它一些节点计算和设置场景组件的新相对位置,并修改局部旋转,使场景组件始终指向旋转中心。

3,使用场景组件

(1)接下来我们需要将前面创建的场景组件添加到到 Actor 中,并将静态网格体组件与之关联。这里我们打开位于“内容/ThirdPersonBP/Blueprints” 文件夹中的 ThirdPersonCharacter 蓝图。 

(2)在“组件”面板中选择“胶囊体组件”, 以确保“场景组件”附加到根组件。单击“添加”按钮,搜索并添加 BP_CircularMovComp 组件。
  • 选择 BP_CircularMovComp。在“细节”面板中将“位置”的 X(红色)值设置为 70.0。我们还可以修改“默认”类别中 Rotation Per Second 的值。

(3)在“组件”面板中选择已添加的 BP_CircularMovComp 组件,然后再单击“添加”按钮,选择“静态网格体组件”,并将其附加到 BP_CircularMovComp 上。应用于 BP_CircularMovComp 上的移动和旋转将影响“静态网格体组件”。
  • 选择刚添加的“静态网格体组件”。在“细节”面板的“静态网格体”类别中单击右侧下三角按钮,在列表中选择 Shape_Cube 选项。编译蓝图,在“材质”类别中设置“M_Tech_Hex_Tile_Pulse”作为材质。我们可以在“视口”选项卡中查看组件。将“位置”的 Z(蓝色)值设置为 -80.0,将“缩放”设置为 X=0.1Y=1.0 Z=1.5

4,运行测试

(1)运行游戏,可用看到角色身边会出现一面盾牌跟随玩家。

(2)并且该盾牌会围绕着角色持续进行旋转。
评论

全部评论(0)

回到顶部