2021년 8월 30일 월요일

Unreal 의 TEnumAsByte 쓰는 이유

//  공식적 Enum (자료형 명시)
UENUM(BlueprintType)
enum class EType : uint8
{
};

//   Legacy Enum (자료형 없음)
namespace Test
{
	enum EType
	{
		A,
	};
}	

Unreal 은 여러 Platform 을 지원함. 

그래서 자료형의 크기를 명시하는 것을 원칙으로 함. 

그리고 Blueprint 와 호환되는 자료형, 클래스는 꼭 이게 명시되어야함.

그런데 기존 Legacy Enum 은 자료형이 명시되어 있지 않음.

그래서 TArray 등을 사용하기 위해선 Legacy Enum 의 자료형을 명시하게 하는 Template 자료형인 TEnumAsByte (즉 8비트 명시) 를 사용하게 됨.

왜 8비트 이냐면 공식적인 Enum 은 8bit 를 쓰게 하기 때문임.


List