UE4使用C++设置精灵
UE4 setting sprite by using C++
我不知道如何通过引用在 actor class 构造函数中设置精灵。
参考是“PaperSprite'/Game/cc/combat/units/archer_Sprite_0.archer_Sprite_0'”
我想让这个精灵静态化。我认为应该使用 ConstructorHelpers::FObjectFinder 。当我 运行 下面的代码时,我得到了这个错误:
sprite = CreateDefaultSubobject<UPaperSpriteComponent>(TEXT("Sprite_comp"));
sprite->SetupAttachment(RootComponent);
ConstructorHelpers::FObjectFinder<UPaperSprite> SpriteAssetObj(TEXT("PaperSprite'/Game/cc/combat/units/archer_Sprite_0.archer_Sprite_0'"));
//sprite->SetSprite(SpriteAssetObj.Object);
"严重性代码说明项目文件行抑制状态
错误 C2664 'void ConstructorHelpers::ValidateObject(UObject *,const FString &,const TCHAR *)': 无法将参数 1 从 'T *' 转换为 'UObject *' MyProject C:\Program Files\Epic Games\UE_4.26\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h 110
“
任何帮助或建议都会很好。提前致谢。
I want to make this sprite static.
ConstructorHelpers::FObjectFinder 用于查找资产。
在移动的情况下:
sprite->SetMobility(EComponentMobility::Type::Stationary);
我测试了下面的代码没有任何问题。您确定 ConstructorHelpers::FObjectFinder... 导致错误吗?
static ConstructorHelpers::FObjectFinder<UPaperSprite> SpriteAssetObj(TEXT("PaperSprite'/Game/TEMP/Sprites/SP_TempSprite_1.SP_TempSprite_1'"));
if (SpriteAssetObj.Object)
{
UE_LOG(LogTemp, Warning, TEXT("PaperSprite loaded"));
}
else
{
UE_LOG(LogTemp, Warning, TEXT("PaperSprite not found"));
}
不要忘记将 Paper2D 模块添加到您的 YourGame.build.cs 文件中:
PublicDependencyModuleNames.AddRange(new string[] { "Paper2D" });
并添加到您的文件中:
#include "PaperSprite.h"
我不知道如何通过引用在 actor class 构造函数中设置精灵。 参考是“PaperSprite'/Game/cc/combat/units/archer_Sprite_0.archer_Sprite_0'”
我想让这个精灵静态化。我认为应该使用 ConstructorHelpers::FObjectFinder 。当我 运行 下面的代码时,我得到了这个错误:
sprite = CreateDefaultSubobject<UPaperSpriteComponent>(TEXT("Sprite_comp"));
sprite->SetupAttachment(RootComponent);
ConstructorHelpers::FObjectFinder<UPaperSprite> SpriteAssetObj(TEXT("PaperSprite'/Game/cc/combat/units/archer_Sprite_0.archer_Sprite_0'"));
//sprite->SetSprite(SpriteAssetObj.Object);
"严重性代码说明项目文件行抑制状态 错误 C2664 'void ConstructorHelpers::ValidateObject(UObject *,const FString &,const TCHAR *)': 无法将参数 1 从 'T *' 转换为 'UObject *' MyProject C:\Program Files\Epic Games\UE_4.26\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h 110 “
任何帮助或建议都会很好。提前致谢。
I want to make this sprite static.
ConstructorHelpers::FObjectFinder 用于查找资产。
在移动的情况下:
sprite->SetMobility(EComponentMobility::Type::Stationary);
我测试了下面的代码没有任何问题。您确定 ConstructorHelpers::FObjectFinder... 导致错误吗?
static ConstructorHelpers::FObjectFinder<UPaperSprite> SpriteAssetObj(TEXT("PaperSprite'/Game/TEMP/Sprites/SP_TempSprite_1.SP_TempSprite_1'"));
if (SpriteAssetObj.Object)
{
UE_LOG(LogTemp, Warning, TEXT("PaperSprite loaded"));
}
else
{
UE_LOG(LogTemp, Warning, TEXT("PaperSprite not found"));
}
不要忘记将 Paper2D 模块添加到您的 YourGame.build.cs 文件中:
PublicDependencyModuleNames.AddRange(new string[] { "Paper2D" });
并添加到您的文件中:
#include "PaperSprite.h"