はじめに
UPROPERTYの指定子であるEditCondition
は知っている方も多いかと思います。
UE4 EditConditionsについて - PaperSloth's diary
[UE4]プロパティ指定子"EditCondition"でできること
EditCondition.h
UPROPERTY(EditAnywhere)
bool bUseHoge = false;
UPROPERTY(EditAnywhere, meta = (EditCondition = "bUseHoge"))
int32 Hoge = 0;
こんな感じでEditCondition
で指定した条件がtrueならそのプロパティが編集できるようになります。
これだけでも便利ですが、以下の様なマテリアルインスタンスのプロパティのようにチェックボックスを対象のプロパティの行に表示する方法をこの記事ではご紹介します。
やり方
InlineEditConditionToggle.h
UPROPERTY(EditAnywhere, meta = (InlineEditConditionToggle))
bool bUseHoge = false;
UPROPERTY(EditAnywhere, meta = (EditCondition = "bUseHoge"))
int32 Hoge = 0;
先程のEditCondition
のコードのフラグのプロパティ側のメタ指定子にInlineEditConditionToggle
を追加します。
変数名が表示されなくなりますが、BlueprintReadWrite
かBlueprintReadOnly
を追加すれば普通に変数として使用できます。
おわりに
割と細かいことなのでしなくても良いといえばそうですが、マケプレに出品するプラグインを作ったり、他職種の人が触る機能を作る際にひと手間加えると使う側の人が喜ぶかもしれません。