如何在自定义的虚幻引擎模块中#include插件源文件?

3
我正在使用C++ Unreal Engine项目,并创建了自己的自定义模块MyActor,Unreal Engine会自动为我创建.cpp和.h文件。这部分似乎已经起作用了。
现在我想从AppleARKit插件中包含类或方法,然后覆盖并从我的自定义MyActor模块中调用它们。
首先,我尝试使用#include AppleARKitLiveLinkSourceFactory.h,因为它有我想修改和使用的IARKitBlendShapePublisher::PublishBlendshapes方法。
一开始它不起作用,出现错误:E1696 Cannot open source file AppleARKitLiveLinkSourceFactory.h,但是我发现我可以在Visual Studio中使用"属性"下的"包含目录"来包含它们,像这样: enter image description here AppleARKitLiveLinkSourceFactory.h位于Public文件夹中,但我也包括了Private文件夹,我不知道是否需要这样做。这似乎一开始有效,但然后我对AppleARKitLiveLinkSourceFactory.h文件中的每个依赖项都得到了与之前相同的错误。
我必须为整个链路中的每个依赖项单独包含目录吗?有更简单的方法吗?
1个回答

4
当我遇到从插件中包含文件的问题时,比如在我的情况下是激光雷达点云(LidarPointCloud),以下步骤对我有效:
1)在我的<project-name>.Build.cs文件中,我将我想要使用的模块名称(LidarPointCloudRuntime)添加到公共依赖项列表中。
PublicDependencyModuleNames.AddRange(new string[] { "LidarPointCloudRuntime", "Core", "CoreUObject", "Engine", "InputCore" });

我通过打开插件文件夹中的.uplugin文件并查看Modules部分来确定模块名称。如果列出了多个模块名称,您应该选择包含您关心类的源代码的那个。

2) 然后重新构建项目,关闭编辑器,右键单击我的<project-name>.uproject文件并重新生成项目文件。

之后,我就可以在我的代码中访问.h文件了。

-更新-

似乎AppleARKitFaceSupport依赖于其他可能需要包含的插件。例如,ARSystems.h位于AugmentedReality。当我将其添加到PublicDependencyModuleNames并执行相同的步骤时,它可以找到ARSystem.h


我尝试按照你的指示操作了以下步骤:
  1. 找到了模块名并将其添加到我的build.cs文件中,即"AppleARKitFaceSupport"。
  2. 在Visual Studio中运行了"Build Solution"。关闭了Visual Studio,并在我的<project-name>.uproject文件上运行了"Generate Visual Studio Project Files"。
  3. 然后在我的MyActor.cpp文件中添加了#include "AppleARKitLiveLinkSourceFactory.h"。但是接下来对于AppleARKitLiveLinkSourceFactory.h的每个依赖项都出现了错误。
E1696无法打开源文件"ARSystem.h" E1696无法打开源文件"ARTrackable.h" E1696无法打开源文件"ILiveLinkSource.h" 等等...
- undefined
@Purp 请查看我的更新。可能需要包括依赖项。 - undefined
1
@V Money 非常感谢,这个方法有效。我不再遇到错误了。我最终将 "AugmentedReality" 和 "LiveLinkInterface" 添加到 PublicDependencyModuleNames 中。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接