게임 엔진/Unreal
[Unreal] [Example] 데이터 이용 방법 (DataAsset)
AlgorFati
2020. 5. 30. 11:38
Data Asset
Unreal engine에서 파일에 저장된 데이터를 읽어오거나,
파일로 데이터를 저장하는 형태로 데이터를 사용해야 하는 상황이 생길 수 있다.
이러한 상황에서 엔진에서 지원하는 data asset을 이용하면 효과적이다.
Data asset을 이용하기 위해서 먼저 사용하고자 하는 data 형태를 c++로 작성한다.
Data Asset 정의하기
#include "Engine/DataAsset.h"
UCLASS()
class TESTWORLD_API UCustomDataAsset : public UPrimaryDataAsset
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere)
FString itemName;
UPROPERTY(EditAnywhere)
UBlueprint* itemBlueprint;
UPROPERTY(EditAnywhere)
FColor itemColor;
UPROPERTY(EditAnywhere)
FVector loc;
UPROPERTY(EditAnywhere)
FQuat rot;
};
이제 editor에서 실제 데이터 테이블 에셋 파일을 생성한다.
그 후, 콘텐츠 브로우저 -> 신규추가 -> 기타 -> 데이터 에셋 클래스 선택 창이 뜨면 CustomDataAsset를 선택하고,
만들어진 data asset에 원하는 데이터를 채운다.
Code에서 Data Asset 사용하기
#include "Public/CustomDataAsset.h"
#include "UObject/ConstructorHelpers.h"
...
static ConstructorHelpers::FObjectFinder<UDataAsset> DataAsset(TEXT("/Game/Data/CustomDataAsset.CustomDataAsset"));
if (DataAsset.Succeeded())
{
UDataAsset* dataAsset = DataAsset.Object;
UCustomDataAsset* data = Cast<UCustomDataAsset>(dataAsset);
UE_LOG(LogTemp, Warning, TEXT(" Data asset loc : %f %f %f"),
data->loc.X, data->loc.Y, data->loc.Z);
}
...