UPROPERTY()
FACTION_DATA CurActionData;
UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName = "播放完成回調類(不要A,U前綴如Actor非AActor)")
FString ClassName;
UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName = "播放完成回調函數")
FName CallBackUFunction;
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()函數