【UE4 C++】ConstrcorHelper::FClassFinder 查找路径问题引起项目奔溃

【UE4 C++】ConstrcorHelper::FClassFinder 查找路径问题引起项目奔溃

Fatal error:[File:D:/Build/++UE4/Sync/Engine/Source/Runtime/CoreUObject/Private/UObject/UObjectGlobals.cpp] [Line: 3281]
Error LogWindows Bad path name: Blueprint‘/Game/Blueprints/BP_Powerup, missing ‘ or an incorrect format

主要是第二行代码,意思是这个这个路径缺少 或一个不正确的格式,其实就是路径格式问题。

路径格式问题

static ConstructorHelpers::FClassFinder<APowerup> BP_Powerup(TEXT("Blueprint‘/Game/Blueprints/BP_Powerup.BP_Powerup‘"));
Powerup = BP_Powerup.Class;

我是因为在C++中写了资源查找函数,然后格式写错了,编译的时候项目就直接奔溃了,之后把路径格式改了在编译器里编译还是打开项目就奔溃,

删掉了错误代码还是无法打开项目

unreal引擎编译c++代码的时候,如果代码中有错误,引擎非常容易崩溃,崩溃后,经常无法再次成功打开。这时候需要以下操作才可以重新打开:
1.将vs中的错误代码注释掉。
2.打开项目文件夹的目录,将 .vs、binary、intermediate、saved删掉。
3.在目录下找到.uproject右键重新生成。

【UE4 C++】ConstrcorHelper::FClassFinder 查找路径问题引起项目奔溃

重新生成文件 成功打开

打开后引擎提示如图

【UE4 C++】ConstrcorHelper::FClassFinder 查找路径问题引起项目奔溃
就是路劲问题引起的,修改后重新编译

路径格式的讲究

之前我们用下面这个函数去引入文件

static ConstructorHelpers::FClassFinder<> (TEXT(""));

可以直接去Content里鼠标左键复制路径引用过来,是没问题的,但是我翻车了,则才有了这篇博客,我是用了这个路径才好的

static ConstructorHelpers::FClassFinder<APowerup> BP_Powerup(TEXT("/Game/Blueprints/BP_Powerup"));
if(BP_Powerup.Succeeded()) Powerup = BP_Powerup.Class;

解释一下和之前引用的区别,/Game/后面跟你要引入的文件的路径,不用加后缀哦。

还有一个是一定要用Succeeded()方法检测一下,以免空指针调用报错。

!!!路径一定要写好,我尝试有Succeeded()方法保护的情况下去乱写路径格式,真没让我失望,引擎崩溃了

【UE4 C++】ConstrcorHelper::FClassFinder 查找路径问题引起项目奔溃

上一篇:如何解决C#异常:必须先将当前线程设置为单线程单元(STA)模式,然后才能进行OLE调用,请确保你的Main函数已在其上标记了STAThreadAttribute


下一篇:Springboot配置Hibernate Session