Unreal Engine 4 藍圖完全學習教程(八)—— 循環(2)ForEachLoop


Ⅰ、數組於ForEachLoop

數組是一種特別的值,可對多個值進行集中管理。處理保管於數組中的所有數據時會用到循環,如利用敵人角色的數組使他們同時動作。

而處理數組中的所有元素,可以使用“ForEachLoop”循環,它是專門處理數組的ForLoop循環。傳遞數組后,可按順序從數組中取出值並進行處理。

首先准備一個數組,點擊左側“我的藍圖”中的“變量”處的“+”號,新建一個名為“data”的變量:

 

 

 接着在右側“細節”欄中修改參數信息(將變量數據類型修改成整數,並將變量變更為數組):

 

 

 然后點擊編譯,編譯完成后繼續在細節面板中“默認值”處單擊“+”號為數組創建初始值:

 

 

Ⅱ、ForEachLoop節點 

右擊圖表,輸入“foreach”,選擇“工具”內的“數組”項目中的“ForEachLoop”選項創建“ForEachLoop”節點:

 

 

 ForEachLoop節點:

 

 

ForEachLoop節點是用於處理數組的專用節點,其輸入輸出項也是結合數組由ForLoop演變而來的:

ForEachLoop節點的輸入項:

  • Exec:連接執行處理的順序。
  • Array:連接要處理的數組。

ForEachLoop節點的輸出項:

  • Loop Body:將循環處理的內容連接至此以創建處理。
  • Array Element:在ForEachLoop中將以順序從數組中取出值,所取出的值從此處獲得。
  • Array Index:可獲得取出值的Index編號。
  • Completed:數組處理全部完成后,用於連接至后續的處理。

接下來將數組節點拖動到圖表中(選擇獲取data),並將“Data”連接至“ForEachLoop”:

Ⅲ、創建以ForEachLoop進行的循環處理

使用ForEachLoop,首先計算data數組的總數,然后將所得的值除以data值的數量得到平均值。

首先,創建一個名為“num”的變量用來記錄總數,初值為0:

 

 

 接着將該變量拖動到圖表中,選擇設置num。然后右鍵圖表,輸入“+”,選擇“integer+integer”選項。再將num變量拖動到圖表中,選擇獲取num:

然后進行節點的連接:

①將“Num”節點連接至“+”節點的任意一個輸入項;

②將“ForEachLoop”的“Array Element”連接至“+”節點的另一個輸入項;

③將“+”節點的輸出項連接至“設置”節點的“Num”;

④將“Begin Play”的exec輸出項連接至“ForEachLoop”的“Exec”;

⑤將“ForEachLoop”的“Loop Body”連接至“設置”的exec輸入項;

⑥將“ForEachLoop”的“Completed”連接至“Print String”的exec輸入項。

Ⅳ、准備Print String的內容

最后需要將平均值的結果使用Print String節點進行輸出。總數已經從變量num中獲得,接下來是求平均值並通過Print String顯示。

首先,復制一個獲得num的節點。然后右擊圖表,輸入“/”,選擇“integer/integer”選項。再次右擊圖表,輸入“length”並選擇“工具”內的“數組”中的“Length”選項:

然后對節點進行連接:

①將“Data”連接至“LENGTH”;

②將“Num”連接至“÷”上方的輸入項;

③將“LENGTH”連接至“÷”下方的輸入項;

④將“÷”連接至“Print String”的“In String”。

 

 

最后編譯運行,即可得到數組中五個整數的平均值輸出:

 

 


免責聲明!

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



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