fc2ブログ

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

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

PREV | PAGE-SELECT | NEXT

≫ EDIT

UE5/UE4 C++の配列(TArray)やマップ(TMap)の関数名について(Empty(Clear)、Num(Length)、Is Empty)

C++の配列(TArray)やマップ(TMap)の関数名についてです。
基礎的なことなのですが、BPとC++両方やってると少し混乱したのでメモです。

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

・UE4の配列が思ってたのと違った
https://jagabeeinitialize.hatenablog.com/entry/2018/01/20/012000

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

・TArray:Unreal Engine における配列
https://docs.unrealengine.com/4.26/ja/ProgrammingAndScripting/ProgrammingWithCPP/UnrealArchitecture/TArrays/

何が混乱したかというと参考サイトに書かれているこれらになります。

要素数の取得
UnrealC++ TArray.Num();

何が分からなかったって、TArray.Max()の存在ですよ。最初これかと思いました。Num()は現在の要素数、Max()は確保された要素数という違いがあるんですね。どうりで数が合わないと思ったんですよ!

配列が空かどうか(bool)
UnrealC++

書いていないんじゃないんです。C#もUnrealC++も空かどうかの取得関数が無いみたいです。
CountやNum()で返って来た値が0かどうかで判断するしかなさそうです。

全ての要素を削除する
UnrealC++ TArray.Empty();

Emptyまさかのここで登場。C++もC#もclearなのに…UnrealC++…ここでEmptyとは…。


上記の関数はBPの方では異なる命名規則で存在するのですよね…。

・要素数の取得
TArray002.jpg
C++では「Num」関数なのですが、BPでは「Length」となるようです。

・配列が空かどうか(bool)
TArray000.jpg
UE5 で確認したところC++にも「Is Empty関数があるようです。BPでも「Is Empty」ノードが存在するようです。

・全ての要素を削除する
TArray001.jpg
C++では「Empty」関数なのですが、BPでは「Clear」となるようです。

片方だけやっている場合には特に気にせず使えて、違和感があっても慣れの問題だと思うのですが
C++とBPの両方をやると、命名規則が異なっていて混乱するのでちょっと困りました。

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

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/674-f19806c9

TRACKBACK

PREV | PAGE-SELECT | NEXT