[언리얼 엔진] UPROPERTY EditCondition

    개요

    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;

    반응형

    댓글

    Designed by JB FACTORY