UE5 LyraStarterGame 如何在Controller中添加ULyraWeaponStateComponent?

问题描述 投票:0回答:1

我正在分析LyraGameplayAbility_RangedWeapon来研究LyraStarterGame的武器攻击能力。我确认武器攻击的服务器-客户端预测功能位于 ULyraWeaponStateComponent 中,但我不知道如何将此组件添加到控制器中。 C++代码中没有组件创建部分,蓝图中甚至没有使用该组件。但是,当我使用 FindComponentsByClass 节点检查 ULyraWeaponStateComponent 是否存在时,它始终存在于控制器中。该组件不是在 C++ 代码或蓝图中使用或创建的,但我很好奇该组件是如何添加到控制器中的。

c++ unreal-engine5 unreal-blueprint
1个回答
0
投票

Lyra 使用

GameFeaturePlugins
,如果/需要时会在运行时加载。

加载

GameFeaturePlugins
时,它们通常会执行
GameFeatureActions
定义
中定义的多个 
GameFeatureData(或者在 Lyra 的情况下,也是
LyraExperienceDefinition

ShooterCore
GameFeaturePlugin
加载时,它会执行一个
GameFeatureAction
,将
ULyraWeaponStateComponent
注入每个
AController
,包括玩家和机器人。

在 C++ 中找不到发生这种情况的原因是因为 C++ 中没有定义这些。 它全部在

UDataAsset
文件夹中的
Content
二进制文件中定义(在本例中具体是
UGameFeatureData
资产)。

要查看配置,您必须启动

UnrealEditor
,打开
LyraStarterGame
项目,然后打开:
Plugins / ShooterCore Content / ShooterCore

在该数据资产中,您将看到一个

Actions
数组,展开该数组以查看
Add Components
操作,展开该数组以查看所有已注入组件的列表,在该列表中您将看到
ULyraWeaponStateComponent
被注入到客户端和服务器上的所有
AController

有关 Lyra 体验如何运作的更多信息,请参阅:

https://x157.github.io/UE5/LyraStarterGame/Experience/

© www.soinside.com 2019 - 2024. All rights reserved.