
UE5から始める C++ & BP 08 【Blueprint版】Flow Control(Switch)
Switch文が好きでよく使います。
何でだろう?
if文の条件式を間違えるので、Switch文は制御文の中では分かりやすからですね。
分かりやすい
読みやすい
プログラムを読んでいると、分かりやすい文は気持ちがほっこりします。
前回は「Flow Control(Branch)」方法について調査しました。
今回は「Flow Control(Switch)」方法について調査していきます。
【Blueprint版】Flow Control(Switch)
今回出来ること
[Branch]ノードを複数使用して分岐した処理を[Switch]ノードで分岐させます。

学習用の新規レベル「Chapter_2_FlowControl_Switch」を作成する
学習用の新規レベルを作成します。
[File]メニューから[New Level…]を選択します。

[Default]を選択します。

「Maps」フォルダに「Chapter_2_FlowControl_Switch」を入力し、[Save]ボタンをクリックします。

Blueprintを複製する
「BP_FlowControl_Branch」をDuplicate(複製)して、「BP_FlowControl_Switch」を作成します。

Switchノードを使用して数値で分岐する
[Branch]ノードを複数使用して、変数[CalcType]の値に応じて計算結果の出力処理を切り替えました。
[Switch]ノードを使用して、処理を見やすく変更しましょう。

メニューから[Switch on int]を選択します。
[Switch]ノードを追加する時は、追加したいVariableTypeのSwitchノードを[Switch (ValiableType)]で検索することで見つけることができます。

[Switch]ノードのOutputピンの数を[Add pin]の[+]をクリックして追加します。
Outputピンは以下のように計算結果の出力を切り替えます。
0:足し算
1:引き算
2:掛け算
Default(該当しない値):割り算

[Switch]ノードから計算結果を出力する処理を切り替えるように実行ピンを接続し直します。
1つの変数の値に応じて処理を切り替えるときに[Switch]ノードを使用すると処理が見やすくなります。

[Compile]ボタンをクリックします。

LevelEditorに戻り、「BP_FlowControl_Switch」をViewportにDrag&Dropします。

Level Editorの[Play]ボタンをクリックします。

変数[CalcType]の値が[1]なので、引き算の出力結果が表示されます。

[Switch]ノードを使用することで処理の流れが見やすくなりました。

Switchノードの設定について
[Switch]ノードを選択すると、[Detail]パネルにプロパティが表示されます。
プロパティの設定を変更することで[Switch]ノードの使い方を変更することができます。


全て保存して、Blueprint側は終了
Blueprint側の説明はここまでになります。
[Content Browser]から[Save All]ボタンをクリックし、[Save Selected]ボタンをクリックしてプロジェクトの変更のあったアセットをすべて保存します。

まとめ
これくらいの分量で機能を書いていきたいですね。
プログラムの基本文法は切り分けが難しい。
覚えないといけないことを覚えればプログラムは書けるので頑張りましょう。
UE4から始めるC++&Blueprint 進捗とロードマップ
Zennで進捗報告を行い、GitHubでロードマップを公開中です。
よかったら覗いてみてください。