UE4_C++访问蓝图里的变量

有没有碰到这样的问题,之前的同事用“连连看”实现了项目的逻辑,后续你要维护推展项目的开发。但头疼的是,你是个coder,not “连连看”玩家。这时候how to do it

UE4 C++ 访问蓝图里的变量

c++获得BP的方式

在访问蓝图变量之前,要先获得该蓝图,获得蓝图引用的方式

例如获得一个pawn类的InitialSpeed变量100

// BP
UPROPERTY(EditAnyWhere, BlueprintReadWrite, Category = "MyActor")
TSubclassOf<APawn> classToFind;            // 使用这种方式可以过滤 

 
TArray<AActor*> FoundActors;
UGameplayStatics::GetAllActorsOfClass(GetWorld(),ClassToFind,FoundActors);

关于TSubclassOf的使用,参照
UE4_TSubClassOf 使用

c++ Get、Set BP变量
// .h 文件
UFloatProperty* FloatProp;
float VarValue;

// .cpp 文件
AActor* actor = FoundActors[0];
	
FloatProp = FindFieldChecked<UFloatProperty>(actor->GetClass(), "InitialSpeed");
VarValue = FloatProp->GetPropertyValue_InContainer(actor);    // 获得100
FloatProp->SetPropertyValue_InContainer(actor,200);           // 把InitialSpeed设置为200
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值