본문 바로가기

개발/Unreal

Unreal Nested containers are not supported 오류 해결법

안녕하세요 넬다이입니다.

 

언리얼을 사용하다보면은 가끔 이런 에러가 나올때가 있는데요 이런 문제를 해결을 한번 해볼까 합니다.

 

자 Nested containers are not supported 에러는 무엇이냐 하면은

 

언리얼에서는 중첩 컨테이너를 지원하지 않습니다.

 

그렇다면은 우리가 사용하고 싶은 중첩 컨테이너는 어떤 해결법들이 있는지 한번 봐보지요.

 

일단 에러구문입니다.

UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = "true"))
	TMap<EPassiveType, TArray<float>>		PassiveList;

 

자 이건 제가 작업을 하다가 문제가 되었던 코드입니다.

 

위에 보시면은 TMap 안에 Pair로 TArray가 들어간게 보이실꺼에요.

그러면은 언리얼 코드에서는 Nested containers are not supported. 이런 에러를 내보내게 되는데요

 

이 구문의 해결법은 은근 간단하답니다.

TArray를 한번 더 감싸면 되는거에요!

 

말이 어려우시다면 한번 직접 보시면 좋을꺼같아요 저는 이런방식으로 해결했어요!

 

USTRUCT(BlueprintType)
struct SEED_API FPassiveData
{
	GENERATED_USTRUCT_BODY()

public :
	TArray<float>			PassiveValueDataList;
};

UCLASS(ClassGroup = (Custom), meta = (BlueprintSpawnableComponent))
class SEED_API UPassiveComponent : public UActorComponent, public ILifeValueStateSetInterface
{
	GENERATED_BODY()

public:
	// Sets default values for this component's properties
	UPassiveComponent();


private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta = (AllowPrivateAccess = "true"))
		TMap<EPassiveType, FPassiveData>		PassiveList;
};

 

저는 이런식으로 해결했습니다 struct로 한번 감싸는 형태를 취한것이지요.

 

이런식으로 한번 더 감싸면은 이 문제를 해결할 수 있습니다.