【问题标题】:How to use C++ functions correctly in Unreal Engine?如何在虚幻引擎中正确使用 C++ 函数?
【发布时间】:2019-09-09 22:45:41
【问题描述】:

我正在尝试通过以下行使用this ProjectPointToNavigation

bool navResult = GetWorld()->GetNavigationSystem()->ProjectPointToNavigation(HitResult.Location, NavLocation, TeleportFadeTimeExtent);

但是,ProjectPointToNavigation 方法已被弃用 with this function

我的问题是,如何重新编写上面的代码以使用最新的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

任何指导将不胜感激

【问题讨论】:

    标签: c++ unreal-engine4


    【解决方案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"

    【讨论】:

      猜你喜欢
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 1970-01-01
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 2016-06-03
      相关资源
      最近更新 更多