编译错误-如何创建一个自定义的c++类来使用蓝图

compiler errors - How to create a custom c++ class to use with blueprint

本文关键字:c++ 自定义 错误 何创建 编译 创建 一个      更新时间:2023-10-16

我正在尝试创建一个自定义类,然后我可以在我的蓝图中使用。我需要这个类来保持球员的信息,如名称和路径到他们的图片。到目前为止,我所做的并不编译或构建没有错误,我不知道如何修复它,因为我从来没有使用过这个

header file #pragma once
#include "Object.h"
#include <iostream>
#include "PlayerClass.generated.h"
/**
 * 
 */
UCLASS()
class PROTOTYPE2_API UPlayerClass : public UObject
{
 GENERATED_BODY()
public:
 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Switch Variables");
 string playerName;
 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Switch Variables")
 string playerTeam;
 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Switch Variables")
 string picPath;
 UPlayerClass(const FObjectInitializer& ObjectInitializer);
 UFUNCTION()
 void importPic(string picPath);

};

. cpp文件
#include "Prototype2.h"
#include "PlayerClass.h"
UPlayerClass::UPlayerClass(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
   playerName = "";
   playerTeam = "";
   picPath = "";
}
void UPlayerClass::importPic_Implementation(Fstring picPath)
{
}

我发现我的importPic函数需要

UFUNCTION(BlueprintCallable, Category = "Import")
 virtual void ImportPic(const FString& Path);

,如果你想让你的类显示为蓝图变量或者能够成为蓝图类,你可以将顶部标题更改为

UCLASS(BlueprintType) // for blueprint to show up as variable
UCLASS(Bleuprintable) // for blueprint to be able to be made as a blueprint class

构建和编译的代码:

头文件

#pragma once
#include "Object.h"
#include "PlayerClass.generated.h"
UCLASS(BlueprintType)
class PROTOTYPE2_API UPlayerClass : public UObject
{
   GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Player Variables")
FString playerName;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Player Variables")
FString playerTeam;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Player Variables")
FString picPath;
UPlayerClass(const FObjectInitializer& ObjectInitializer);
UFUNCTION(BlueprintCallable, Category = "Import")
virtual void ImportPic(const FString& Path);

};

.cpp -

#include "Prototype2.h"
#include "PlayerClass.h"
UPlayerClass::UPlayerClass(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
   playerName = "";
   playerTeam = "";
   picPath = "";
}
void UPlayerClass::ImportPic(const FString& Path)
{
}