レベルシーケンサーのイベントのペイロードで意図しないパラメータが可視・編集できてしまう

いつもお世話になっております。

レベルシーケンサーのイベントに関数を割り当てたときペイロードに出てくる引数のうち望まないパラメータが可視・編集できてしまいます。

具体的には、下記のFTestStruct を引数として渡した場合 EditableValue だけが可視・編集できることを期待していますが、

NonEditableValueも可視・編集できる次第です。

​​

USTRUCT(BlueprintType)
struct FTestStruct
{
	GENERATED_BODY()
​
	UPROPERTY()
	int32 NonEditableValue;
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 EditableValue;
};

ご確認のほどよろしくお願いいたします。​

再現手順

  1. 添付のプロジェクトファイルのレベルLV_Testを開く
  2. レベルシーケンサー LS_Test を開く
  3. BP_Test > イベント のトラック上の0フレーム目にイベント( ATest::MyFunction )の呼び出しがあります
  4. セクション編集 にでてくるペイロードカテゴリを見ると不可視・編集不可のつもりの Non Editable Value が可視・編集できてしまいます

お世話になっております。

シーケンサーの実装で、UPROPERTYがあると全体的にEditorで見えてしまうことになると思います。

GarbageCollectionが不要だあれば、UPROPERTY自体を外すことがおすすめです。

また、UPROPERTYをつけることが必要であれば、meta=(EditCondition=“false”)プロパティ自体は表示されても編集はできなくなると思うので、これで安全を守れるかと思います。

また、やりたいことによって、C++ではなくBPでの実装であれば解決できるかと思います。

お手数ですが、よろしくお願いします。

お世話になります。

ご回答ありがとうございました。

> シーケンサーの実装で、UPROPERTYがあると全体的にEditorで見えてしまうことになると思います。

そのような仕様なのですね。承知いたしました。

> GarbageCollectionが不要だあれば、UPROPERTY自体を外すことがおすすめです。

GCよりは、値の保存の意味でつけているケースでした。

方針としてはUPROPERTY()を外す方向で理解しましたので、

値の保存に関してはSerialize()関数でカバーするようにしてみます。

> また、UPROPERTYをつけることが必要であれば、meta=(EditCondition=“false”)プロパティ自体は表示されても編集はできなくなると思うので、これで安全を守れるかと思います。

metaは適用されるのですね。見落としていました。

meta=(EditCondition=“false”)でReadOnlyになるのも確認いたしました。情報ありがとうございました。

ひきつづき、よろしくお願いいたします。