안녕하세요 넬다이입니다.
언리얼을 사용하다보면은 가끔 이런 에러가 나올때가 있는데요 이런 문제를 해결을 한번 해볼까 합니다.
자 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로 한번 감싸는 형태를 취한것이지요.
이런식으로 한번 더 감싸면은 이 문제를 해결할 수 있습니다.
'개발 > Unreal' 카테고리의 다른 글
FActorSpawnParameters란 무엇인가? 구조체 변수 정리 및 예제 코드 (1) | 2020.06.16 |
---|