UE5/UE4 C++で配列の要素数を固定して変更できないようにプロパティ指定子(Property Specifiers)で指定する(UPROPERTY(EditFixedSize))
こちらを参考にさせていただきました。
・UE4 よく使うUPROPERTYメモ
https://qiita.com/bigengelt/items/b17545fffe7b8d69e5e8
公式ドキュメントはこちら。
・プロパティ(Properties)とプロパティ指定子(Property Specifiers)
https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/GameplayArchitecture/Properties/
配列の要素数を固定して変更できないようにするには「UPROPERTY」を使って「EditFixedSize」を記述します。
記述はこんな感じになります。
「DebugArray」は通常の配列。// 通常の配列
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NewCategory")
TArrayDebugArray;
// 固定サイズの配列
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NewCategory", EditFixedSize)
TArrayDebugArrayFixedSize;
// 固定サイズの配列(要素数をコンストラクタで初期化)
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NewCategory", EditFixedSize)
TArrayDebugArrayFixedSizeConstruct;
「DebugArrayFixedSize」は要素数固定の配列。
「DebugArrayFixedSizeConstruct」は要素数固定の配列ですが、コンストラクタで要素数を指定しています。
「DebugArrayFixedSizeConstruct」のみ、コンストラクタで要素数を指定するためこういった記述をしています。
// コンストラクタ
AFixedSizeClass::AFixedSizeClass()
{// 固定サイズの配列のサイズを設定
DebugArrayFixedSizeConstruct.SetNum(4);}
結果はこんな感じになります。

「DebugArray」は通常の配列なので要素数の変更ができるようになっています。
「DebugArrayFixedSize」は要素数が固定となるので要素数の変更はできないようになっています。
「DebugArrayFixedSizeConstruct」は要素数固定なので要素数の変更はできないですが、
コンストラクタで要素数を指定しているので、指定した要素数になっています。
変数のアクセス権限もそうですが、こういったなるべく想定のものになるように、
誤った操作や状況にならないように設定で対応するのもちゃんとやらないとかなと思いました。
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑