ue4-动态调用obj对象的方法
在使用AnimInstance的Notify时候发现可以动态调用UObject对象的方法,前提是这个方法必须是暴露给蓝图的或者是蓝图中的方法,应该是ue4中的某中反射机制生成的蓝图类XXX.generated.h
1、使用一个AMychar对象调用自身的bp func或者 c++暴露给蓝图的方法
1 | void UMyBpFuncLib::TestObjFunc(AMyChar* _myChar,FString _funcName) |
2、然后看下AMychar要被动态调用的方法
- 一定要暴露给蓝图,也就是加UFUNCTION
1
2
3
4
5
6
7
8
9
10
11//h
UFUNCTION(BlueprintCallable, Category = "MyChar")
void TestFunction(int32 _num, FString _str);
//cpp
void AMyChar::TestFunction(int32 _num, FString _str)
{
FString str = FString::Printf(TEXT("--- AMyChar::TestFunction - num:%d, str:%s"), _num, *_str);
GEngine->AddOnScreenDebugMessage(0, 5.0f, FColor::Green, str);
}
3、蓝图动态调用c++方法
- 结果:
4、蓝图动态调用blueprint方法
在AMychar的蓝图类中其个方法
然后动态调用
结果