虚幻引擎5 GAS开发俯视角RPG游戏 P06-29 属性信息委托

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:

效果:

力量出来了

相关推荐
坚果派·白晓明9 小时前
【鸿蒙PC】SDL3 移植:AtomCode Skills 4 步速通多媒体库适配
c++·华为·ai编程·harmonyos·atomcode·c/c++三方库
赴生-10 小时前
C++进阶 C++11(下)
开发语言·c++
有点。10 小时前
C++(贪心算法一)
c++·贪心算法
WBluuue10 小时前
数据结构与算法:有序表(二):跳表
数据结构·c++·算法·skiplist
赴生-11 小时前
C++进阶 异常
开发语言·c++
xinhuanjieyi11 小时前
html修复游戏种太阳错误
前端·游戏·html
凡人叶枫12 小时前
Effective C++ 条款28:避免使用 handles 指向对象内部
linux·服务器·开发语言·c++·嵌入式开发
zwenqiyu12 小时前
P5283 [十二省联考 2019] 异或粽子题解
c++·学习·算法
Queenie_Charlie12 小时前
哈夫曼树
数据结构·c++·哈夫曼树
lihao lihao13 小时前
Linux信号
开发语言·c++·算法