작성
·
37
0
예제에 30분 경에 등장한 ConstructorHelpers::FObjectFinder 를 따라해보고 있습니다.
ACollidingPawn::ACollidingPawn()
{
...
static ConstructorHelpers::FObjectFinder<UStaticMesh> SphereVisualAsset(TEXT("/Game/StarterContent/Shapes/Shape_Sphere.Shape_Sphere"));
...
}
와 같이 사용했는데 다음과 같은 컴파일 오류가 나옵니다.
>C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): error C2664: 'void ConstructorHelpers::ValidateObject(UObject ,const FString &,const TCHAR )': cannot convert argument 1 from 'TObjectPtr<UStaticMesh>' to 'UObject *'
1>C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): note: No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
1>C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(193): note: see declaration of 'ConstructorHelpers::ValidateObject'
1>C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): note: while trying to match the argument list '(TObjectPtr<UStaticMesh>, FString, const TCHAR *)'
1>C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(91): note: the template instantiation context (the oldest one first) is
1>C:\projects\unreal4sample\Unreal5Project\Example\UdnTutorial\HowTo_Components\Source\HowTo_Components\CollidingPawn.cpp(32): note: see reference to class template instantiation 'ConstructorHelpers::FObjectFinder<UStaticMesh>' being compiled
1>C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\CoreUObject\Public\UObject\ConstructorHelpers.h(84): note: while compiling class template member function 'ConstructorHelpers::FObjectFinder<UStaticMesh>::FObjectFinder(const TCHAR *,uint32)'
1>C:\projects\unreal4sample\Unreal5Project\Example\UdnTutorial\HowTo_Components\Source\HowTo_Components\CollidingPawn.cpp(32): note: see the first reference to 'ConstructorHelpers::FObjectFinder<UStaticMesh>::FObjectFinder' in 'ACollidingPawn::ACollidingPawn'
TObjectPtr 와 UObject* 와 관련된
형변환 문제로 나오는데, 어떤 차이로 인해 예제와 달리 오류가 나는 걸까요?
감사합니다.
예전에 UE 4.1 대 버전에서 만들었던 샘플을 5.5 로 바꿔하면서 발생한 에러인데
아래 코드 추가하니 되네요.
#include "Engine/StaticMesh.h"