UE5/UE4 C++の配列(TArray)やマップ(TMap)の関数名について(Empty(Clear)、Num(Length)、Is Empty)
基礎的なことなのですが、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の方では異なる命名規則で存在するのですよね…。
・要素数の取得

C++では「Num」関数なのですが、BPでは「Length」となるようです。
・配列が空かどうか(bool)

UE5 で確認したところC++にも「Is Empty関数があるようです。BPでも「Is Empty」ノードが存在するようです。
・全ての要素を削除する

C++では「Empty」関数なのですが、BPでは「Clear」となるようです。
片方だけやっている場合には特に気にせず使えて、違和感があっても慣れの問題だと思うのですが
C++とBPの両方をやると、命名規則が異なっていて混乱するのでちょっと困りました。
| UE5 | 10:00 | comments:0 | trackbacks:0 | TOP↑