UE4 UE5

【UE4/UE5】C++ 編集条件付きプロパティーと自動チェック

編集条件付きのプロパティを作る方法

UPROPERTYのmeta="変数名"で編集が出来るかどうかを指定する

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Tokyo|Adachi", meta = (EditCondition = "Rice"))
    bool Teishoku;

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Tokyo|Adachi")
    bool Rice;

RiceがチェックされているとTeishokuがチェックできるようになります

チェックしていないときは 変数の先頭に'!" を付けて UPROPERTYのmeta="!変数名"
複数条件の時は&&または||でつなぎます
Rice, Dishがチェックされいる時にTeishokuはエディットできない

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Japan|Tokyo", meta = (EditCondition = "!Rice&&!Dish"))
    bool Teishoku;

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Japan|Tokyo")
    bool Rice;

UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Japan|Tokyo")
    bool Dish;

自動チェックはブループリントではコンストラクションスクリプトを利用しますが、C++ではOnConstruction関数をオーバーライドします

virtual void OnConstruction(const FTransform& Transform ) override;

void AMyActor::OnConstruction(const FTransform& Transform )
{
if (Rice || Dish)
Teishoku = true;
}

-UE4, UE5