Enum と書いて 「いーなむ」と発音するそうです。フルスペルで書くと "Enumerator"。
漢字で書くと「列挙型」 ぜんぜん理解が深まる気がしないのですが、プログラミング界では、ごく一般的に活用されているみたいで、もちろんUE4にもふんだんに盛り込まれています。
私は今までC言語系にはまったくご縁が無かったので、得体が知れないこのEnumは遠巻きに眺めるだけでした。使ってみたら以外に便利だったのでメモっておくことにします。
新しく変数を作るときによく開くタイプ選択リストの一番下にカテゴライズされています。
開けると大量に並んでいます。
この辺のは、あらかじめ用意されたEnumです。
実はVisibilityを変更するときにお世話になっていたりします。
あと、Switchノードを探すときも、”E”の付いたのがたくさん出てきます。
単語の先頭に大文字の”E”がくっついてるのは大抵がEnumです。大文字が連続するので不自然さに気付くと思います。
さてさて、今回このEnumを自作します。
まず、コンテンツブラウザで右クリックして、Create Advanced Asset から Blueprints を開いて、Enumeration を選択。
↓こんな色のアセットアイコンが出てきます。
ダブルクリックして編集するとこんなカンジ。
右の方に New ボタンがあるのでクリックすると、テキストを入力するフィールドが追加されます。
とりあえず5個ほど追加して保存します。
レベルブループリントでいいので、まず "foreach"でノードを検索すると、作ったEnumアセットの名前がくっついたやつがあるはずです。
ここにもEnum関連のノードがいっぱい用意されているのが分かります。
引っ張り出したノードに みんな大好き PrintString ノードをつないでみると、
緑のラインがString型にキャストされます。さっそく再生してみましょう。
ForeachLoopって 配列の中身を取り出すときよく使うのですが、Enumも同じような使い方ができます。
ループ処理中のインデックス番号が知りたいときは、EnumValueのPINをByte型でキャストしてやります。緑のPINからドラッグして "string" で検索すると出てきます。
さっきと見た目に同じですが・・・
表示すると変わっています。
Enumを使うと、アイテム名やメニューボタンのラベル名なんかが管理しやすくなります。最近よく利用するようになりました。
ということで次回は、Widgetで簡単なチェックリストを作ってみたいと思います。