1.在BroadcastInitialValues函数里,我们把属性集里的属性广播出去
(1)建立动态多播委托:
cpp
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnAttributeInfoSignature, const FAttributeInfo&, Info);
cpp
UPROPERTY(BlueprintAssignable, BlueprintReadWrite, Category="CC|GAS|Attributes")
FOnAttributeInfoSignature OnAttributeInfoSignature;
(2)创建一个出数据资产:
cpp
protected:
UPROPERTY(EditDefaultsOnly, Category="CC|GAS|Attributes")
TObjectPtr<UCC_AttributeInfo> AttributeInfo;
2.当Info里的标签等于Attributes_Primary_Strength时,我们把Strength值赋值给Info.Value
cpp
void UCC_AttributeMenuWidgetController::BroadcastInitialValues()
{
if (CC_AttributeSet == nullptr)
{
CC_AttributeSet = CastChecked<UCC_AttributeSet>(AttributeSet);
}
checkf(AttributeInfo, TEXT("在[%s]中没有配置AttributeInfo"), *GetNameSafe(this));
FAttributeInfo Info = AttributeInfo->FindAttributeInfoFromTag(CC_GameplayTags::Attributes_Primary_Strength);
Info.AttributeValue = CC_AttributeSet->GetStrength();
OnAttributeInfoSignature.Broadcast(Info);
}
3.配置资产:

4.调用函数:
Source/CC_Aura/Public/UI/WidgetController/CC_WidgetController.h:





效果:
力量出来了
