在虚幻引擎5中,如何在C++中包含和使用UPlayMontageCallbackProxy::CreateProxyObjectForPlayMontage?

In Unreal Engine 5, how do I include and use UPlayMontageCallbackProxy::CreateProxyObjectForPlayMontage in C++?

提问人:brain56 提问时间:11/2/2023 更新时间:11/5/2023 访问量:39

问:

我想玩我的 via C++,特别是想利用 的便利性。UAnimMontageUPlayMontageCallbackProxy

看起来从理论上讲,我可以使用,但每当我使用它时,我都会收到链接器错误:UPlayMontageCallbackProxy::CreateProxyObjectForPlayMontage

0>YCharacterVaulting.cpp.obj: Error LNK2019 : unresolved external symbol "public: void __cdecl UPlayMontageCallbackProxy::PlayMontage(class USkeletalMeshComponent *,class UAnimMontage *,float,float,class FName)" (?PlayMontage@UPlayMontageCallbackProxy@@QEAAXPEAVUSkeletalMeshComponent@@PEAVUAnimMontage@@MMVFName@@@Z) referenced in function "public: void __cdecl UYCharacterVaulting::Traverse(void)" (?Traverse@UYCharacterVaulting@@QEAAXXZ)

我已经更新了我的模块,以便包含该模块:Build.cs

PrivateDependencyModuleNames.AddRange(new string[] {"AnimGraphRuntime", "MotionWarping"});

关于如何修复链接器错误的任何想法?谢谢!

C++ 动画 包括 4、虚幻引擎 5

评论


答:

0赞 splodginald 11/5/2023 #1

您有链接错误,因为引擎开发人员选择不导出 UPlayMontageCallback 类(或者这是一个疏忽)。 如果我们比较头文件中的声明:

class UPlayMontageCallbackProxy : public UObject

...添加到导出的同一模块中的另一个类:

class ANIMGRAPHRUNTIME_API UAnimExecutionContextLibrary : public UBlueprintFunctionLibrary

...您会注意到导出该类的 ANIMGRAPHRUNTIME_API 宏。