⭐ Game Programming/Unreal Programming

[언리얼 엔진] UPROPERTY EditCondition

테디슨 2021. 12. 20. 22:55

개요

UE4(Unreal Engine)의 UPROPERTY에는 여러 메타데이터 지정자가 있다. 그 중 EditCondition(EditConditionHides) 지정자를 사용하여 UPROPERTY 값에 따라 에디터에서 속성을 선택적으로 활성화, 비활성화 및 숨기는 방법을 기록하고자 한다.

기본 사용

일반적으로 bool 타입을 지정하여 활성화, 비활성화 할 수 있다.

UPROPERTY(EditAnywhere, Category = "Move")
bool   bCanMove = true;

UPROPERTY(EditAnywhere, Category = "Move", meta = (EditCondition = "bCanMove"))
int    MoveSpeed = 100;

숨김 옵션

EditConditionHides 지정자를 추가하여 MoveSpeed 프로퍼티를 표시/숨김 처리 할 수 있다.

UPROPERTY(EditAnywhere, Category = "Move")
bool   bCanMove = true;

UPROPERTY(EditAnywhere, Category = "Move", meta = (EditCondition = "bCanMove", EditConditionHides))
int    MoveSpeed = 100;

고급 사용 (Enum)

UE4 4.23 버전 부터 지원되는 기능이다. (릴리즈 노트 참고)
bool 타입 뿐 아니라, 표현식이 사용 가능해 졌다.
포인터를 사용할 경우 MyPtr이 아닌 MyPtr != nullptr형태로 사용해야 한다.

UENUM(BlueprintType)
enum class ETestType : uint8
{
    A_Type,
    B_Type
};

//---------------------------------------------

UPROPERTY(EditAnywhere, Category="Move")
ETestType  TestType = ETestType::A_Type;
UPROPERTY(EditAnywhere, Category="Move", meta=(EditCondition="TestType == ETestType::A_Type"))
float            A_Speed = 10.0f;
UPROPERTY(EditAnywhere, Category="Move", meta=(EditCondition="TestType == ETestType::B_Type"))
float            B_Speed = 1.0f;

반응형