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

问题描述 投票:0回答:1

我想通过 C++ 来玩我的

UAnimMontage
,特别是想利用
UPlayMontageCallbackProxy
的便利。

理论上看起来,我可以使用

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++ animation include unreal-engine4 unreal-engine5
1个回答
0
投票

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

class UPlayMontageCallbackProxy : public UObject

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

class ANIMGRAPHRUNTIME_API UAnimExecutionContextLibrary : public UBlueprintFunctionLibrary

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

© www.soinside.com 2019 - 2024. All rights reserved.