【问题标题】:How to create a custom c++ class to use with blueprint如何创建自定义 C++ 类以与蓝图一起使用
【发布时间】:2015-09-25 10:14:17
【问题描述】:

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

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)
{

}

【问题讨论】:

  • 蓝图到底是什么意思?你如何引导你的类生成器?
  • 我使用的是虚幻引擎 4,它们允许您交替使用代码和蓝图,因此蓝图就像一种可视化的编码方式

标签: c++ compiler-errors unreal-engine4 build-error unreal-blueprint


【解决方案1】:

我发现我的 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)
{

}

【讨论】:

  • 我是否必须从 UObject 继承才能使类在编辑器中可见,以便制作它的蓝图?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 1970-01-01
  • 1970-01-01
  • 2021-07-31
  • 1970-01-01
  • 2016-10-28
  • 2012-04-01
相关资源
最近更新 更多