みつまめ杏仁

アンリアルエンジン(UE4)でGUIを作るためにゴニョゴニョしてます。UIデザイナーの皆様の助けになれば幸いです。

いーなむを使ってみる

Enum と書いて 「いーなむ」と発音するそうです。フルスペルで書くと "Enumerator"。

漢字で書くと「列挙型」 ぜんぜん理解が深まる気がしないのですが、プログラミング界では、ごく一般的に活用されているみたいで、もちろんUE4にもふんだんに盛り込まれています。

私は今までC言語系にはまったくご縁が無かったので、得体が知れないこのEnumは遠巻きに眺めるだけでした。使ってみたら以外に便利だったのでメモっておくことにします。

新しく変数を作るときによく開くタイプ選択リストの一番下にカテゴライズされています。

f:id:hiyokosabrey:20160412225000p:plain

開けると大量に並んでいます。

f:id:hiyokosabrey:20160412225151p:plain

この辺のは、あらかじめ用意されたEnumです。

実はVisibilityを変更するときにお世話になっていたりします。

あと、Switchノードを探すときも、”E”の付いたのがたくさん出てきます。

単語の先頭に大文字の”E”がくっついてるのは大抵がEnumです。大文字が連続するので不自然さに気付くと思います。

 

さてさて、今回このEnumを自作します。

まず、コンテンツブラウザで右クリックして、Create Advanced Asset から Blueprints を開いて、Enumeration を選択。

f:id:hiyokosabrey:20160412225950p:plain

↓こんな色のアセットアイコンが出てきます。

f:id:hiyokosabrey:20160412230216p:plain

ダブルクリックして編集するとこんなカンジ。

f:id:hiyokosabrey:20160412230622p:plain

右の方に New ボタンがあるのでクリックすると、テキストを入力するフィールドが追加されます。

とりあえず5個ほど追加して保存します。

f:id:hiyokosabrey:20160412231421p:plain

レベルブループリントでいいので、まず "foreach"でノードを検索すると、作ったEnumアセットの名前がくっついたやつがあるはずです。

f:id:hiyokosabrey:20160412232108p:plain

ここにもEnum関連のノードがいっぱい用意されているのが分かります。

引っ張り出したノードに みんな大好き PrintString ノードをつないでみると、

f:id:hiyokosabrey:20160412232254p:plain

緑のラインがString型にキャストされます。さっそく再生してみましょう。

f:id:hiyokosabrey:20160412232449p:plain

ForeachLoopって 配列の中身を取り出すときよく使うのですが、Enumも同じような使い方ができます。

 

ループ処理中のインデックス番号が知りたいときは、EnumValueのPINをByte型でキャストしてやります。緑のPINからドラッグして "string" で検索すると出てきます。

f:id:hiyokosabrey:20160412233152p:plain

さっきと見た目に同じですが・・・

f:id:hiyokosabrey:20160412233555p:plain

表示すると変わっています。

f:id:hiyokosabrey:20160412233622p:plain

 

Enumを使うと、アイテム名やメニューボタンのラベル名なんかが管理しやすくなります。最近よく利用するようになりました。

 

ということで次回は、Widgetで簡単なチェックリストを作ってみたいと思います。