Ⅰ、數組於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”。
最后編譯運行,即可得到數組中五個整數的平均值輸出: