c++ - UE4 数据表结构错误

标签 c++ visual-c++ unreal-engine4

我正在关注有关 CSV 表条目的 Packt 教程。本教程要求我a) 创建一个新的 Actor 类,b) 将其命名为 TestCustomData,然后c) 替换新的-使用以下代码生成 TestCustomData.h:

#pragma once

#include "TestCustomData.generated.h"

USTRUCT(BlueprintType)
struct FTestCustomData : public FTableRowBase
{
GENERATED_USTRUCT_BODY()

UPROPERTY( BlueprintReadOnly, Category = "TestCustomData" )
int32 SomeNumber;

UPROPERTY( BlueprintReadOnly, Category = "TestCustomData" )
FString SomeString;
};

但是,TestCustomData文件编译失败,输出如下日志:

Error f:\unreal\ue4 assignments\ue4_projectrpg\source\ue4_projectrpg\TestCustomData.h(5) : error C2504: 'FTableRowBase': base class undefined
Info Compiling game modules for hot reload
Info Parsing headers for UE4_ProjectRPGEditor
Info   Running UnrealHeaderTool "F:\Unreal\UE4 Assignments\UE4_ProjectRPG\UE4_ProjectRPG.uproject" "F:\Unreal\UE4 Assignments\UE4_ProjectRPG\Intermediate\Build\Win64\UE4_ProjectRPGEditor\Development\UE4_ProjectRPGEditor.uhtmanifest" -LogCmds="loginit warning, logexit warning, logdatabase error" -Unattended -WarningsAsErrors -installed
Info Reflection code generated for UE4_ProjectRPGEditor in 3.4146568 seconds
Info Performing 4 actions (4 in parallel)
Info TestCustomData.cpp
Info UE4_ProjectRPG.generated.cpp
Error f:\unreal\ue4 assignments\ue4_projectrpg\source\ue4_projectrpg\TestCustomData.h(6) : error C3646: 'Super': unknown override specifier
Error f:\unreal\ue4 assignments\ue4_projectrpg\source\ue4_projectrpg\TestCustomData.h(6) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Error F:\Unreal\UE4 Assignments\UE4_ProjectRPG\Source\UE4_ProjectRPG\TestCustomData.h(5) : error C2504: 'FTableRowBase': base class undefined
Error F:\Unreal\UE4 Assignments\UE4_ProjectRPG\Source\UE4_ProjectRPG\TestCustomData.h(6) : error C3646: 'Super': unknown override specifier
Error F:\Unreal\UE4 Assignments\UE4_ProjectRPG\Source\UE4_ProjectRPG\TestCustomData.h(6) : error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Info ERROR: UBT ERROR: Failed to produce item: F:\Unreal\UE4 Assignments\UE4_ProjectRPG\Binaries\Win64\UE4Editor-UE4_ProjectRPG-3031.dll
Info Total build time: 6.88 seconds (Local executor: 0.00 seconds)

我对 UE4 中的 StackOverflow 和 C++ 还很陌生,如有任何帮助,我将不胜感激。也欢迎任何改进我的问题的反馈!预先感谢您的帮助。

最佳答案

我被困在同一个地方,这解决了它: 我将 Assets 命名为“MyActor2”,并将结构命名为“ThisNewStructure”,因此存在一些小差异......

我认为基本上是包含 Datatable.h 和“public:”才起作用。

头文件:

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "Runtime/Engine/Classes/Engine/DataTable.h"
#include "MyActor2.generated.h"

USTRUCT(BlueprintType)
struct FThisNewStructure : public FTableRowBase
{
    GENERATED_USTRUCT_BODY()
public:

    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
        int32 SomeNumber;
    UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
        FString SomeString;

};

cpp:

#include "MyActor2.h"

然后编译成功。 我必须关闭/重新打开 VS 和 UE,以便编辑了解新结构。

关于c++ - UE4 数据表结构错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45447012/

相关文章:

c++ - 如何验证另一个程序的窗口是否最小化?

c++ - 虚幻引擎 4 fatal error C1083

c++ - 如何在 Win32 上的 WS_EX_CLIENTEDGE "Edit"文本字段上打断文本行

c++ - 寻找沿圆绘制时所占据的角矩形(见图)

C++ stringstream 添加额外的字节

c++ - 这段 C++ 代码有什么问题?

时间:2018-03-08 标签:c++opengl: sleep() does not affect glutPostRedisplay() during an animation

c++ - 模拟全局热键

c++ - 虚幻引擎 -waitmutes-2015 已退出,代码为 255

c++ - 在 UE4 中使用 gdcm 库