I didn't figure out how can i set a sprite in actor class constructor by using its reference. Reference is "PaperSprite'/Game/cc/combat/units/archer_Sprite_0.archer_Sprite_0'"
I want to make this sprite static. I think should use ConstructorHelpers::FObjectFinder . When i run the code below, i got this error:
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);
"Severity Code Description Project File Line Suppression State Error C2664 'void ConstructorHelpers::ValidateObject(UObject *,const FString &,const TCHAR *)': cannot convert argument 1 from 'T *' to 'UObject *' MyProject C:\Program Files\Epic Games\UE_4.26\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h 110 "
Any help or advice would be nice. Thanks in advance.
I want to make this sprite static.
ConstructorHelpers::FObjectFinder is for finding an asset.
In case of movement would be:
sprite->SetMobility(EComponentMobility::Type::Stationary);
I tested the code below without any problem. Are you sure ConstructorHelpers::FObjectFinder... is causing the error?
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"));
}
Don't forget to add Paper2D module to your YourGame.build.cs file:
PublicDependencyModuleNames.AddRange(new string[] { "Paper2D" });
And add to your file:
#include "PaperSprite.h"