虚幻4蓝图快速入门(二)
藍圖用戶指南
由于藍圖就是個可視化的腳本系統(tǒng),那么一個程序語言中的基本概念也就都存在。下面我們簡單來介紹下藍圖中的一些基本概念。
變量
概述
Variables(變量) 是存放一個值或引用世界中的一個Object或Actor的屬性。這些用戶界面 內(nèi)部訪問,或者通過設置使得可以在外部進行訪問, 以便應用放置在關卡中的藍圖實例的設計人員可以修改它們的 值。
?
變量顯示為圓角方框,方框內(nèi)包含了變量的名稱:
變量類型
您可以創(chuàng)建各種類型的變量,包括數(shù)據(jù)類型的變量(比如布爾型、整型及浮點型)及用于存放類似于Object、Actor及特定類的引用型變量。 您還可以創(chuàng)建每種變量類型的數(shù)組。每種變量類型都進行了顏色編碼,以方便識別。
藍圖數(shù)組
和變量值一樣,藍圖也可以在數(shù)組中存儲數(shù)據(jù)。如果您不熟悉編程術語,您可以把數(shù)組想象成為存在于一個單元中的一組變量。
?
數(shù)組僅能存放一種類型的值。比如,布爾型數(shù)組僅可以存放布爾值。
?
數(shù)組變量包含一個3x3 的帶顏色網(wǎng)格,表明它們是數(shù)組,不是正常的變量。在沒有連接的數(shù)組中,其網(wǎng)格的中心是黑的。一旦連接后,整個網(wǎng)格將會可見,如下所示。
數(shù)組索引
同時需要注意的一點是,數(shù)組中的值的索引值是 從0開始的 ,這意味著第一個索引是 0 而不是1。
流程控制
概述
Flow Control (流程控制)使得能在藍圖中清楚地控制執(zhí)行的流程。 此種控制可以多種形式進行,基于某些值為真的情況來選擇圖表的某個分支來執(zhí)行,多次執(zhí)行某個特定分支,以特定順序執(zhí)行多個分支,等等。 默認的流程控制操作包括了分支(if語句),循環(huán)(for和while語句),門,及序列。
開關節(jié)點
開關節(jié)點讀取數(shù)據(jù)輸入,并會基于該輸入值來從匹配的(或可選的默認)執(zhí)行輸出中發(fā)送執(zhí)行流程。 可用的開關有以下幾種類型: Int (整型),String (字符串型), Name (名稱型),以及 Enum (枚舉型)。
?
一般而言,開關節(jié)點會根據(jù)其估算的數(shù)據(jù)類型擁有執(zhí)行輸入以及數(shù)據(jù)輸入。 輸出均為執(zhí)行輸出。 Enum 開關會自動從 Enum 屬性中生成輸出執(zhí)行引腳,而 Int, String 及 Name 開關擁有可自定義的輸出執(zhí)行引腳。
程序中的switch關鍵字,但是它支持更多的類型。
標準流程控制節(jié)點
這些節(jié)點提供了一系列方法來控制執(zhí)行的流程
Branch
在面對單個 True/False 判定的情況下,Branch(分支)節(jié)點是一種創(chuàng)建基于判斷的流程的簡單方式。 在執(zhí)行后,分支節(jié)點會查找附加的布爾變量的輸入值,并在合適的輸出節(jié)點下方來輸出執(zhí)行脈沖值。其實就是if-else分支。
DoN
DoN節(jié)點將會 N 次觸發(fā)執(zhí)行脈沖。 在達到限制后,它將會停止所有的輸出執(zhí)行,直到脈沖被傳入其 Reset (重置)輸入。
?
例如,您可以啟動車輛20次,然后在綁定到 Reset (重置)輸入的加油事件被激活前,無法再次啟動車輛。
DoOnce
DoOnce節(jié)點-正如名稱所顯示的-將會僅僅觸發(fā)執(zhí)行脈沖一次。 在之后,它將會停止所有的輸出執(zhí)行,直到脈沖被傳入其 Reset (重置)輸入。 該節(jié)點等同于DoN節(jié)點中 N = 1 的情況。
?
我們舉例來說,您可以對一扇開啟的門的節(jié)點網(wǎng)絡設置DoOnce,這樣這扇門將僅僅開啟一次。 不過您可以綁定一個觸發(fā)事件到Reset(重置)輸入,這樣會導致在觸發(fā)器被激活時,門會再次打開。
FlipFlop
FlipFlop節(jié)點取入執(zhí)行輸出并在兩個執(zhí)行輸出間切換。 其第一次被調(diào)用時,將會輸出A。 第二次被調(diào)用時,將會輸出B,然后再是A,然后又是B,循環(huán)往復。 該節(jié)點同時有布爾變量輸出,使您可以追溯輸出A何時被調(diào)用。
ForLoop
ForLoop節(jié)點的工作原理等同于標準的代碼循環(huán),將會在開始和結(jié)束之間的每個索引觸發(fā)執(zhí)行脈沖。就是C++中的for循環(huán)可視化版本。
ForLoopWithBreak
ForLoopWithBreak節(jié)點包含了能中斷循環(huán)的輸入引腳,除此之外,它運行的方式與ForLoop節(jié)點非常相似。
Gate
Gate(門)節(jié)點用來開啟和關閉執(zhí)行流。 簡單來說,Enter輸入取入執(zhí)行脈沖,同時門的當前狀態(tài)(開啟或關閉)將會決定這些脈沖是否從Exit輸出中傳出。
MultiGate
MultiGate取入單個數(shù)據(jù)脈沖并將其傳送到任意數(shù)量的潛在輸出。 這個過程隨機按順序發(fā)生,可能會循環(huán)
Sequence
Sequence (序列)節(jié)點使得單個執(zhí)行脈沖能按順序觸發(fā)一系列事件。 節(jié)點可能有任意數(shù)量的輸出,所有的輸出引腳都會在序列節(jié)點一獲得輸入時就被調(diào)用。 它們將總是按順序被調(diào)用,但不會有任何延遲。 對一般用戶來說,輸出引腳看起來好像被同時觸發(fā)了一樣。
WhileLoop
只要特定值為 true ,則WhileLoop節(jié)點將會輸出一個結(jié)果。 在循環(huán)的每個迭代中,它會查看其輸入布爾值的當前狀態(tài)。 一旦它讀取到 false ,該循環(huán)中斷。
函數(shù)
Functions(函數(shù)) 是屬于特定 藍圖 的節(jié)點圖表,該節(jié)點圖表可以執(zhí)行或者從 藍圖 中的另一個 圖表中進行調(diào)用。函數(shù)具有一個單一的入口點,由和該函數(shù)具有相同名稱的一個節(jié)點指定, 該節(jié)點包含了一個單一的執(zhí)行輸出引腳。當從另一個圖表調(diào)用函數(shù)時,會激活該輸出執(zhí)行引腳, 促使執(zhí)行連接網(wǎng)絡。
訪問修飾符
當創(chuàng)建函數(shù)時,您可以指定可以訪問及不能訪問這些函數(shù)的其他對象。這可以通過設置 Access Specifier(訪問修飾符) 屬性來完成,該屬性可以在選中函數(shù)的 詳細信息 面板中找到。跟C++中一樣,有Public Protected Private三種類型。
純函數(shù)和非純函數(shù)
函數(shù)可以是 純函數(shù) 也可以是 非純函數(shù) 。主要的區(qū)別是純函數(shù)不會以任何方式修改狀態(tài)或者類的成員, 而非純函數(shù)可以自由地修改狀態(tài)。純函數(shù)一般用于 getter 函數(shù) 或者僅輸出一個數(shù)據(jù)值的操作符。
非純函數(shù)必須通過在事件圖表中將執(zhí)行線連接到函數(shù)調(diào)用節(jié)點來顯式地執(zhí)行。 非純函數(shù)通過使用以下這些方式之一進行指定:
- 在代碼中定義的函數(shù)的函數(shù)聲明中指定 BlueprintCallable 關鍵字。
- 將通過 藍圖編輯器 添加的函數(shù)的 Pure(純函數(shù)) 復選框保留為未選中狀態(tài)。
純函數(shù)連接到數(shù)據(jù)引腳上,當需要依賴于純函數(shù)的數(shù)據(jù)時,編譯器會自動地執(zhí)行這些函數(shù)。這意味著 對于每個連接到純函數(shù)上的節(jié)點,都會調(diào)用一次純函數(shù) 。純函數(shù)通過使用以下這些方式之一進行指定:
- 在代碼中定義的函數(shù)的函數(shù)聲明中指定 BlueprintPure 關鍵字。
- 選中通過 藍圖編輯器 添加的函數(shù)的 Pure(純函數(shù)) 復選框。
創(chuàng)建函數(shù)
在藍圖中創(chuàng)建函數(shù)
在 Graph(圖表) 模式,從 My Blueprint(我的藍圖) 選卡下,點擊New Function (新建函數(shù))按鈕。
在藍圖接口中創(chuàng)建函數(shù)
在 Blueprint Interface(藍圖接口) 中創(chuàng)建函數(shù)同在 Class Blueprint(類藍圖) 或 Level Blueprint(關卡藍圖) 中創(chuàng)建函數(shù)一樣,但是實現(xiàn)是有很大差別的。
在 Graph(圖表) 模式,從 My Blueprint(我的藍圖) 選卡下,點擊New Function (新建函數(shù))按鈕。
編輯函數(shù)
一旦創(chuàng)建了函數(shù),您就需要定義其功能。這個過程需要兩步:
- 創(chuàng)建必要的輸入和輸出參數(shù)
- 在您的輸入和輸出之間創(chuàng)建節(jié)點網(wǎng)絡來定義函數(shù)行為。
調(diào)用函數(shù)
一旦您創(chuàng)建并定義了您的函數(shù)后,就可以在您的事件圖表中調(diào)用它。要想創(chuàng)建一個調(diào)用您的函數(shù)的節(jié)點:
- 從 我的藍圖 選卡中拖拽您的函數(shù)到事件圖表內(nèi)的空白處
- 在事件圖表中右擊,或者從適當?shù)膱?zhí)行引腳或數(shù)據(jù)引腳拖拽鼠標來打開關聯(lián)菜單。在關聯(lián)菜單中搜索您的函數(shù),然后選中它來添加函數(shù)調(diào)用節(jié)點。
轉(zhuǎn)載于:https://www.cnblogs.com/ghl_carmack/p/5922190.html
總結(jié)
以上是生活随笔為你收集整理的虚幻4蓝图快速入门(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家庭装修中,什么时候需要无极调光呢?
- 下一篇: 字符串或打印输出乱码