fc2ブログ

凛(kagring)のUE5/UE4とゲーム制作と雑記ブログ

2016 年から UE4 / 2021年から UE5 を触り始めました。勉強したもののメモ用ブログです。ゲーム制作に関するメモや雑記とか色々あります。C++ での Qt、Unity もほんの少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE5/UE4 C++で配列の要素数を固定して変更できないようにプロパティ指定子(Property Specifiers)で指定する(UPROPERTY(EditFixedSize))

C++で配列の要素数を固定して変更できないようにプロパティ指定子(Property Specifiers)で指定する方法です。

こちらを参考にさせていただきました。

・UE4 よく使うUPROPERTYメモ
https://qiita.com/bigengelt/items/b17545fffe7b8d69e5e8

公式ドキュメントはこちら。

・プロパティ(Properties)とプロパティ指定子(Property Specifiers)
https://docs.unrealengine.com/4.27/ja/ProgrammingAndScripting/GameplayArchitecture/Properties/

配列の要素数を固定して変更できないようにするには「UPROPERTY」を使って「EditFixedSize」を記述します。
記述はこんな感じになります。

// 通常の配列
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NewCategory")
TArray DebugArray;
// 固定サイズの配列
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NewCategory", EditFixedSize)
TArray DebugArrayFixedSize;
// 固定サイズの配列(要素数をコンストラクタで初期化)
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "NewCategory", EditFixedSize)
TArray DebugArrayFixedSizeConstruct;

「DebugArray」は通常の配列。
「DebugArrayFixedSize」は要素数固定の配列。
「DebugArrayFixedSizeConstruct」は要素数固定の配列ですが、コンストラクタで要素数を指定しています。

「DebugArrayFixedSizeConstruct」のみ、コンストラクタで要素数を指定するためこういった記述をしています。

// コンストラクタ
AFixedSizeClass::AFixedSizeClass()
{

// 固定サイズの配列のサイズを設定
DebugArrayFixedSizeConstruct.SetNum(4);
}


結果はこんな感じになります。
プロパティ指定子007
「DebugArray」は通常の配列なので要素数の変更ができるようになっています。
「DebugArrayFixedSize」は要素数が固定となるので要素数の変更はできないようになっています。
「DebugArrayFixedSizeConstruct」は要素数固定なので要素数の変更はできないですが、
コンストラクタで要素数を指定しているので、指定した要素数になっています。

変数のアクセス権限もそうですが、こういったなるべく想定のものになるように、
誤った操作や状況にならないように設定で対応するのもちゃんとやらないとかなと思いました。

| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/696-ce3548a6

TRACKBACK

PREV | PAGE-SELECT | NEXT