Unreal Engine 4 藍圖完全學習教程(六)—— 分支與開關


Ⅰ、控制的基礎——“轉移”與“循環”

  • 轉移:通過確認程序狀態,並據此執行不同處理的一種功能。
  • 循環:多次循環執行預先設置好的處理。

Ⅱ、分支(Branch)

分支就是通過檢查某個值,然后根據結果來決定該執行兩個處理中的哪一個,即所謂的“二選一”。

程序中有一種值,用於表示“是兩個狀態中的哪一個”,即“真假值”,在藍圖中為“布爾型”值。分支就是用於處理真假值的一項功能,通過檢查真假值的值並根據值的狀態來決定兩者中的哪一個處理。

Ⅲ、分支節點

首先右擊圖表,在菜單中輸入分支,“工具”內的“流程控制”項就顯示出了“分支”選項:

 

 分支節點:

 創建的分支節點中有多個輸入和輸出項:

  • Condition:輸入項目。在分支中用於連接要確認的值(真假值),旁邊的復選框在未連接時默認為勾選狀態,通過是否勾選復選框就可以進行分支。
  •  True/False:輸出項目中預備有“真”“假”這兩個項目,用於連接分支處理流程。“真”與“假”為真假值的值。真假值用於表示值的真假,Condition的復選框為勾選狀態時,執行連接到“真”的處理,沒有勾選時,執行連接到“假”的處理。

接着將“Begin Play”的exec輸出項連接到“分支”的exec輸入項,然后將“分支”的“真”連接到“Print String”的exec輸入項:

 然后從工具欄單擊“播放”圖標運行程序。當分支復選框勾選時,Print String顯示出文本;沒有勾選時,不顯示文本。

 Ⅳ、值的比較

在剛才的程序中添加對值進行比較的處理。右擊圖表,在出現的菜單中鍵入“=”,從檢索出的項目中選擇位於“數學”內的“整型”項目中的“Equal(integer)”選項:

 所創建的節點稱為Equal節點,是表示等號(=)的節點。該節點可檢查輸入的兩個值是否相等。藍圖中依據對象值的種類預備有多個Equal節點。本次使用的Equal(integer)用於比較整數值。

 Equal節點有兩個輸入項和一個輸出項:

  • 兩個輸入項:用於連接兩個比較對象值。
  • 輸出項:用於將結果以真假值的形式輸出。值為真表示兩個值相等,為假不相等。

接着在Equal節點的兩個輸入項中填上相同的數字,然后將Equal節點連接到分支:

 

 

 接下來點擊運行,程序通過“Equal”來檢查兩個值,二者相同的話將執行Print String:

 

 

 Ⅴ、能完成很多轉移的開關

分支是使用真假值所做的轉移,也就是“2選1”轉移。而如果想“3選1”呢?

這時就需要用到“開關(Switch)”轉移了。開關的轉移數可以自行添加,只要你想,可以添加無數個。

Ⅶ、“開啟字符串(Switch On String)”節點

接下來,將嘗試使用字符串開關來制作一個“猜拳程序”。

首先,右擊圖表,在菜單欄中鍵入“switch on”,並選擇位於“工具”內的“流程控制(切換)”項中的“開啟字符串”選項:

 

 所創建的“開啟字符串”節點:

 

該節點英文名稱為“Switch On Switch”,意思是“以字符串替換”。也就是用字符串的值來替換。

開啟字符串節點中有幾個輸入輸出項:

  • Selection:用於連接檢查對象值。可在旁邊的文本框內直接填寫文本進行設置。運行時,運行該值和右側的項。
  • Default:找不到與Selection相同的項時運行。
  • “添加功能”鏈接:單擊來添加轉移輸出項。默認狀態為沒有轉移。

然后點擊“添加引腳”選項添加3個選項,然后在右側的細節面板中輸入三種情況的名稱:

 

接着,單擊“我的藍圖”中“變量”處的“+”,創建一個名為“猜拳”的變量:

 

 並在右側的細節面板中將變量類型設置為“字符串”,然后單擊工具欄中的“編譯”進行編譯。編譯后即可在“默認值”處填寫“剪刀”、“石頭”、“布”中的任意一個:

 

 然后就可以將該“猜拳”節點拖拽入藍圖中了,選擇“獲得”選項。再將“猜拳”節點連接到“開啟字符串”節點,接着添加3個Print String節點,分別鍵入“剪刀”、“石頭”、“布”,並連接起來:

 

 但是,當遇到與任何值都不匹配的情況時,就利用“Default”來創建相關的處理。

首先,將“猜拳”變量拖拽到圖表中,並選擇“設置”選項,並設置為“剪刀”:

改寫原獲得節點的默認值,使其不為剪刀、石頭布中的任何一個,然后做如下連線:

 

 最終編譯運行,因為指定的文本不為三者中的任意一個時,則均會輸出“剪刀”:

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM