没有一个不是用NewObject,NewNamedObject或ConstructObject构建的,但它是
None is not being constructed with either NewObject, NewNamedObject or ConstructObject... but it is
我正在使用NewObject初始化UObject,但是当我运行我的项目时它崩溃了。我做错了什么?
我已经尝试使用房间生成器作为Actor和基本类,但仍然遇到相同的错误。
正在调用的函数:
void ADungeonGenerator::GenerateDungeon()
{
URoomGenerator* roomGenerator = NewObject<URoomGenerator>();
roomGenerator->Init(5, 5, 5, 5);
ARoom* room = roomGenerator->GenerateRoom();
}
房间发电机类:
#include "CoreMinimal.h"
#include "Room.h"
#include "RoomGenerator.generated.h"
UCLASS()
class URoomGenerator : public UObject
{
GENERATED_BODY()
public:
URoomGenerator(uint8 minX, uint8 maxX, uint8 minY, uint8 maxY);
URoomGenerator() {};
void Init(uint8 minX, uint8 maxX, uint8 minY, uint8 maxY);
ARoom* GenerateRoom();
private:
uint8 minX;
uint8 maxX;
uint8 minY;
uint8 maxY;
};
崩溃报告:
LoginId:a5fa88794956fc1be51808b1cb46e03b
EpicAccountId:e2ee81ebb2324ef4b67872a90edeabef
Assertion failed: [File:D:Build++UE4SyncEngineSourceRuntimeCoreUObjectPrivateUObjectUObjectGlobals.cpp] [Line: 2496] None is not being constructed with either NewObject, NewNamedObject or ConstructObject.
UE4Editor_Core!FWindowsErrorOutputDevice::Serialize() [d:build++ue4syncenginesourceruntimecoreprivatewindowswindowserroroutputdevice.cpp:79]
UE4Editor_Core!FOutputDevice::LogfImpl() [d:build++ue4syncenginesourceruntimecoreprivatemiscoutputdevice.cpp:71]
UE4Editor_Core!AssertFailedImplV() [d:build++ue4syncenginesourceruntimecoreprivatemiscassertionmacros.cpp:101]
UE4Editor_Core!FDebug::AssertFailed() [d:build++ue4syncenginesourceruntimecoreprivatemiscassertionmacros.cpp:449]
UE4Editor_CoreUObject!UObject::UObject() [d:build++ue4syncenginesourceruntimecoreuobjectprivateuobjectuobjectglobals.cpp:2496]
UE4Editor_Engine!AActor::AActor() [d:build++ue4syncenginesourceruntimeengineprivateactor.cpp:82]
UE4Editor_GreenPen_2449!ARoomGenerator::ARoomGenerator() [D:DevelopmentGreenPenSourceGreenPenRoomGenerator.cpp:10]
UE4Editor_GreenPen_2449!ADungeonGenerator::execGenerateDungeon() [D:DevelopmentGreenPenSourceGreenPenDungeonGenerator.h:15]
UE4Editor_CoreUObject!UFunction::Invoke() [d:build++ue4syncenginesourceruntimecoreuobjectprivateuobjectclass.cpp:4643]
UE4Editor_CoreUObject!UObject::CallFunction() [d:build++ue4syncenginesourceruntimecoreuobjectprivateuobjectscriptcore.cpp:904]
UE4Editor_CoreUObject!UObject::ProcessContextOpcode() [d:build++ue4syncenginesourceruntimecoreuobjectprivateuobjectscriptcore.cpp:2314]
UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:build++ue4syncenginesourceruntimecoreuobjectprivateuobjectscriptcore.cpp:974]
UE4Editor_CoreUObject!ProcessScriptFunction<void (__cdecl*)(UObject *,FFrame &,void *)>() [d:build++ue4syncenginesourceruntimecoreuobjectprivateuobjectscriptcore.cpp:809]
UE4Editor_CoreUObject!ProcessLocalFunction() [d:build++ue4syncenginesourceruntimecoreuobjectprivateuobjectscriptcore.cpp:1033]
UE4Editor_CoreUObject!ProcessLocalScriptFunction() [d:build++ue4syncenginesourceruntimecoreuobjectprivateuobjectscriptcore.cpp:974]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:build++ue4syncenginesourceruntimecoreuobjectprivateuobjectscriptcore.cpp:1058]
UE4Editor_CoreUObject!UFunction::Invoke() [d:build++ue4syncenginesourceruntimecoreuobjectprivateuobjectclass.cpp:4643]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:build++ue4syncenginesourceruntimecoreuobjectprivateuobjectscriptcore.cpp:1464]
UE4Editor_Engine!AActor::ProcessEvent() [d:build++ue4syncenginesourceruntimeengineprivateactor.cpp:769]
UE4Editor_Engine!AActor::BeginPlay() [d:build++ue4syncenginesourceruntimeengineprivateactor.cpp:3383]
UE4Editor_Engine!AActor::DispatchBeginPlay() [d:build++ue4syncenginesourceruntimeengineprivateactor.cpp:3343]
UE4Editor_Engine!AWorldSettings::NotifyBeginPlay() [d:build++ue4syncenginesourceruntimeengineprivateworldsettings.cpp:253]
UE4Editor_Engine!AGameStateBase::HandleBeginPlay() [d:build++ue4syncenginesourceruntimeengineprivategamestatebase.cpp:177]
UE4Editor_Engine!UWorld::BeginPlay() [d:build++ue4syncenginesourceruntimeengineprivateworld.cpp:3948]
UE4Editor_Engine!UGameInstance::StartPlayInEditorGameInstance() [d:build++ue4syncenginesourceruntimeengineprivategameinstance.cpp:413]
UE4Editor_UnrealEd!UEditorEngine::CreatePIEGameInstance() [d:build++ue4syncenginesourceeditorunrealedprivateplaylevel.cpp:3341]
UE4Editor_UnrealEd!UEditorEngine::PlayInEditor() [d:build++ue4syncenginesourceeditorunrealedprivateplaylevel.cpp:2466]
UE4Editor_UnrealEd!UEditorEngine::StartQueuedPlayMapRequest() [d:build++ue4syncenginesourceeditorunrealedprivateplaylevel.cpp:1280]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:build++ue4syncenginesourceeditorunrealedprivateeditorengine.cpp:1532]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:build++ue4syncenginesourceeditorunrealedprivateunrealedengine.cpp:403]
UE4Editor!FEngineLoop::Tick() [d:build++ue4syncenginesourceruntimelaunchprivatelaunchengineloop.cpp:3967]
UE4Editor!GuardedMain() [d:build++ue4syncenginesourceruntimelaunchprivatelaunch.cpp:168]
UE4Editor!GuardedMainWrapper() [d:build++ue4syncenginesourceruntimelaunchprivatewindowslaunchwindows.cpp:145]
UE4Editor!WinMain() [d:build++ue4syncenginesourceruntimelaunchprivatewindowslaunchwindows.cpp:275]
UE4Editor!__scrt_common_main_seh() [d:agent_work3ssrcvctoolscrtvcstartupsrcstartupexe_common.inl:288]
kernel32
ntdll
地下城生成器.h
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "RoomGenerator.h"
#include "DungeonGenerator.generated.h"
UCLASS()
class GREENPEN_API ADungeonGenerator : public AActor
{
GENERATED_BODY()
public:
// Sets default values for this actor's properties
ADungeonGenerator();
UFUNCTION(BlueprintCallable, Category = "GreenPen Dungeon Generator")
void GenerateDungeon();
protected:
// Called when the game starts or when spawned
virtual void BeginPlay() override;
};
运行项目时,我收到错误消息"未使用 NewObject、NewNamedObject 或 ConstructObject 构造无"...我希望调试器进入生成室功能。
啊哈...
这句话说明了一切...
UE4Editor_GreenPen_2449!ARoomGenerator::ARoomGenerator([D:\Development\GreenPen\Source\GreenPen\RoomGenerator.cpp:10]
。那是在我删除的旧文件上,我进行了清理和重建,一切又开始工作了。
多亏了巴斯,我被指出了正确的方向。
相关文章:
- C++为构建时间获取QDateTime的可靠方法
- 无法在 CLion 中构建 C++ 项目
- 函数向量_指针有不同的原型,我可以构建一个吗
- 如何使用ndk-build.cmd构建Android.so文件
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 使用cmake从源代码构建MySQL连接器/C++失败(与以前的声明冲突)
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 构建可组合有向图(扫描仪生成器的汤普森构造算法)
- 无法使用Qt Creator在Windows中构建yaml-cpp
- 构建一个由C和C++文件组成的库
- llvm构建器向基本块添加终止符
- FLTK 2.0构建和演示,适用于VS2019的2011年左右的代码库
- 如何跨平台将二进制资源构建到程序中?
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- 如何解决 Ninja c++ 构建和执行问题
- 使用 cmake 的 LLVM 构建在 tsan_libdispatch_mac.cc 期间失败; "Error: conflicting types for ..."
- CMake WxWidgets项目成功地在Linux上构建,但没有在Windows上构建
- 更改命令行 qt5 源代码构建配置的正确/快速方法
- 用CMake构建C++协议
- Mingw-64 在构建和安装后不会编译 openCV 代码