c++ - 如何在虚幻引擎中正确使用 C++ 函数?
问题描述
我正在尝试通过以下行使用此 ProjectPointToNavigation :
bool navResult = GetWorld()->GetNavigationSystem()->ProjectPointToNavigation(HitResult.Location, NavLocation, TeleportFadeTimeExtent);
但是,此功能ProjectPointToNavigation
已弃用该方法
我的问题是,如何重新编写上面的代码以使用最新的ProjectPointToNavigation
功能?
我尝试了以下方法:
bool navResult = UNavigationSystemV1::ProjectPointToNavigation(HitResult.Location, NavLocation, TeleportFadeTimeExtent);
上面的代码向我显示了以下错误:
'UNavigationSystemV1::ProjectPointToNavigation' 对重载函数的模糊调用
抱歉,如果我的问题很简单,我是 Unreal Engine 的新手,仍在学习它的开发(在我的第一阶段)
更新:
我尝试了以下(在header
课堂上):
UPROPERTY()
class UNavigationSystemV1* NavSystem;
在.cpp
课堂上:
bool navResult = NavSystem->ProjectPointToNavigation(HitResult.Location, NavLocation, TeleportFadeTimeExtent);
它仍然没有工作,我收到以下错误:
严重性代码 描述 项目文件行抑制状态错误 LNK2019 无法解析的外部符号“__declspec(dllimport) public: bool __cdecl UNNavigationSystemV1::ProjectPointToNavigation(struct FVector const &,struct FNavLocation &,struct FVector const &,struct FNavAgentProperties const *,class TSharedPtr)” (__imp_?ProjectPointToNavigation@UNavigationSystemV1@@QEAA_NAEBUFVector@@AEAUFNavLocation@@0PEBUFNavAgentProperties@@V?$TSharedPtr@$$CBUFNavigationQueryFilter@@$00@@@Z) 在函数“private: void __cdecl AVRCharacter::UpdateDestinationMarker(void)”中引用( ?UpdateDestinationMarker@AVRCharacter@@AEAAXXZ) 资源管理器 E:\Unreal Projects\Explorer\Intermediate\ProjectFiles\VRCharacter.cpp.obj 1
任何指导将不胜感激
解决方案
在你的<Project Name>.Build.cs
文件中,PublicDependencyModuleNames
应该已经NavigationSystem
添加了。这将纠正您的链接器错误。
关于访问导航系统指针本身,即使您让代码正常工作,它也会崩溃,因为当您访问NavSystem
它时它将为空。
而是调用以下命令来获取指向新导航系统和项目的指针:
const UNavigationSystemV1* navSystem = NavigationSystem::GetCurrent<UNavigationSystemV1>(this);
bool navResult = navSystem->ProjectPointToNavigation(HitResult.Location,
NavLocation, TeleportFadeTimeExtent);
你需要#include "NavigationSystem.h"
在你的实现文件的顶部。
推荐阅读
- flutter - labelText悬停在textField的左上角后如何为它添加颜色?
- excel - 删除连续重复
- android - 如何从应用程序共享视频?
- html - 具有 2 个或更多字符串的 HTML5 输入模式
- select - Laravel:选择不显示在表单中
- python - 当您不知道确切位置时,如何在 DF 中对字符串的一部分进行切片?
- java - 无法将项目并排设置 LinearLayout
- mongodb - 为什么Mongo查询忽略索引
- vb.net - 使用 vb.net sqlserver 转换 nvarchar 值 Treeview 错误时转换失败
- php - PHP OOP - 类的函数中不存在 $pdo 变量