虚幻引擎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:

效果:

力量出来了

相关推荐
乐观勇敢坚强的老彭1 小时前
C++信奥:开关门、开关灯问题
开发语言·c++·算法
日月云棠1 小时前
UE5 Lyra Weapons 模块深度分析——从装备实例到弹道散布的完整武器系统
ue5
2301_777998342 小时前
C/C++:预处理详解
c语言·c++
t-think3 小时前
C++类和对象详解(一)
开发语言·c++
阿米亚波4 小时前
【C++ STL】std::unordered_multiset
开发语言·数据结构·c++·笔记·stl
随意起个昵称4 小时前
贪心模型-Johnson法则
c++·算法
蜡笔小马4 小时前
【保姆级教程】Windows 下 CGAL 6.2 + VS2022 全流程实战:从源码编译到项目集成(附避坑指南)
c++·cgal
淡海水4 小时前
12-01-YooAsset工程化-Unity资源管理规范
unity·c#·游戏引擎·yooasset
xiaoye-duck4 小时前
《Linux系统编程》Linux 系统多线程(八): C++ 高并发线程池全链路深度解析与从零手撕实现
linux·c++·线程池
胖大和尚5 小时前
在C++的类中,是否可以把函数声明成__device__
c++·cuda