UE4通过类名符串和函数名字符串调用函数

32 篇文章 2 订阅
FACTION_DATA CurActionData;
	UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName = "播放完成回调类(不要A,U前缀如Actor非AActor)")
	FString ClassName;
	UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName = "播放完成回调函数")
	FName CallBackUFunction;

if (!ClassName.IsEmpty())
	{
		UObject* ClassPackage = ANY_PACKAGE;

		UClass* Result = FindObject<UClass>(ClassPackage, *ClassName);
		//动画结束回调
		if (Result && (!CallBackUFunction.IsNone()))
		{
			UFunction*CallBack = Result->FindFunctionByName(CallBackUFunction);
			if (CallBack)
			{
				ProcessEvent(CallBack, NULL);
			}
		}
	}

 

备注:回调类(不要A,U前缀如Actor非AActor),CallBackUFunction为Class中的UFUNCTION()函数

如类

UCLASS()
class TEST_API AZombieMonster :public:APawn
{
	GENERATED_BODY()
public:
	UFUNCTION()
	void OnAnimEnd();
}

 

传入值 ClassName=FString("ZombieMonster"),不带前缀A AZombieMonster

传入值 CallBackUFunction=FName("OnAnimEnd");

最终会调用AZombieMonster::OnAnimEnd()函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值