PROPERTY 선언
UPROPERTY([specifier, specifier, ...], [meta(key=value, key=value, ...)])
Type VariableName;
코어 데이터 유형
1. 정수형
uint8, uint16, uint32, uint64, int8, int16, int32, int64
인티저 프로퍼티는 에디터에 비트마스크 노출 가능 (Meta=(Bitmask)를 추가)
-> 이 비트마스크를 플래그 드롭다운 목록으로 표시하여 개별적으로 켜고 끄는 편집 가능
-> 비트플래그 이름 커스텀마이징을 위해 (Meta=(Bitflags)를 추가) UENUM을 생성
2. 부동 소수점
언리얼은 표준 C++ 부동 소수점 유형인 float와 double사용
3. bool 유형
bool 유형은 c++ bool 키워드 또는 비트 필드로 사용 가능
uint32 bIsHungry : 1;
bool bIsThirsty;
4. string
ue4는 세 가지 유형 스트링 지원
1) FString은 고정적인 "캐릭터 동적 배열" 스트링 유형
2) FName은 글로벌 스트링 테이블로 된 변경불능 대소문자 구분 없는 스트링에 대한 레퍼런스
FString보다 작아 전송에 효율적이나 조작하기가 더 어렵다.
3) FText는 현지화 처리를 위해 고안된 탄탄한 스트링 표현
PROPERTY의 지정자는 여러가지가 있다.
참고 : 프로퍼티 | 언리얼 엔진 문서 (unrealengine.com)
자주쓰이는 지정자
1. BlueprintReadOnly : 블루프린트에서 읽을 수 있지만 변경안됨, BlueprintReadWrite지정자와 호환 안됨.
2. BlueprintReadWrite : 블루프린트에서 읽거나 쓸 수 있다, BlueprintReadOnly지정자와 호환 안됨.
3. EditAnywhere : 아키타입이나 인스턴스 양쪽의 프로퍼티 창에서 편집할 수 있음, 어떤 Visible 지정자와도 호환 안됨.
4. EditDefaultsOnly : 프로퍼티 창에서 편집할 수 있지만, 아키타입 상에서만 가능, 어떤 Visible 지정자와도 호환 안됨.
5. EditInstanceOnly : 프로퍼티 창에서 편집할 수 있지만, 아키타입이 아닌 인스턴스 상에서 가능,
어떤 Visible지정자와도 호환 안됨.
6. VisibleAnywhere : 모든 프로퍼티 창에 보이지만 편집할 수 없다. 어떤 Edit 지정자와도 호환 안됨
7. VisibleDefaultsOnly : 프로퍼티는 아키타입에 대한 프로퍼티 창에서 보이기만 할 뿐, 편집이 안됨. 어떤 Edit와도 호환X
8. VisibleInstanceOnly : 프로퍼티는 아키타입아닌 인스턴스에 대해서 보일 뿐, 편집이 안됨. 어떤 Edit와도 호환X
UENUM 선언
UENUM()
enum class ERED
{
RED,
BLUE,
GREEN
};
구조체
USTRUCT([Specifier, Specifier, ...])
struct StructName
{
GENERATED_USTRUCT_BODY()
};
구조체 지정자
1. Atomic : 항상 하나의 단위로 Serialize됨
2. BlueprintType : 블루프린트에서 변수로 사용할 수 있는 유형으로 노출
3. Immutable : Object.h에서만 쓰이며, 폐기 단계다. 새 구조체에서 사용X
4. NoExport : 클래스에 대하여 자동생성 코드 생성 X, 헤더는 메타데이터 분석을 위해서만 제공
'Unreal Engine 4 > Unreal Engine 4' 카테고리의 다른 글
USceneComponent : position을 저장하는 방식 (0) | 2022.01.14 |
---|---|
Unreal Vector : FVector (0) | 2022.01.13 |
Unreal Engine 4 - 게임 프레임워크 (0) | 2021.07.13 |
Unreal Engine 4 - 주요 이벤트 함수 (0) | 2021.07.12 |
Unreal Engine 4 - Log (0) | 2021.07.12 |