天天看點

《Unreal Engine 4藍圖可視化程式設計》一1.6 改變目标方向

本節書摘來異步社群《unreal engine 4藍圖可視化程式設計》一書中的第1章,第1.6節,作者: brenden sewell 譯者: 陳東林 責編: 胡俊英,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

如果現在編譯、儲存藍圖,然後開始測試遊戲,你期待看到什麼結果?目标圓柱體會在遊戲開始的時候根據設定的速度和方向移動。然而,由于我們沒有任何引起目标停止運動的指令,是以目标圓柱體将随着遊戲運作一直移動,甚至會穿越場景中的對象。為了解決這個問題,我們需要一個邏輯來周期性的改變目标的方向。這将使目标像移動的标靶一樣,在兩點之間規律地來回移動。

我們需要設定兩個節點,為方向變量設定兩個不同的值。拖曳direction變量至事件圖表的空白區域并選擇設定,生成一個有x、y、z坐标的節點。我們可以用它來改變direction變量的值,使這個值與我們賦予的初始值不同。我們希望有兩個這種類型的節點,再拖曳direction變量至空白區域生成另一個節點,将這兩個節點的y軸的值分别設為10和-10。

現在我們需要一個方法在這兩個節點之間轉換,使方向就會重複地改變。希望兩組動作(action)在每次切換之前交替執行一次時,可以使用flipflop節點。這适用于我們這個項目,是以滑鼠右鍵單擊事件圖表的空白區域搜尋“flipflop”,選擇并放置好節點,然後與剛建立的兩個direction節點連接配接。

最後,我們需要確定在執行方向轉換之間有一些延遲。否則,方向将會在每一幀都改變,目标對象也就不會移動了。為了實作這一步驟,從flipflop節點的執行引腳拖出引線至空白區域,搜尋delay節點。這個節點将允許我們設定一個以秒為機關的延遲時間,而在這個節點以後的執行指令将會被延遲這段時間後執行。将delay節點放在set actor transform節點和flipflop節點之間,設定延遲時間為6秒。在6秒的延遲後,執行flipflop的轉換功能。最終的結果如圖1.30所示,如果你完成了,請編譯并儲存藍圖。

《Unreal Engine 4藍圖可視化程式設計》一1.6 改變目标方向

測試移動的目标

現在我們已經将藍圖更新過了,可以測試檢視目标圓柱體對象是否按照預期進行移動。首先,我們需要将目标圓柱體對象放在y軸方向上沒有障礙物的地方,確定在y軸上運動不會與其他物體碰撞,這裡采用的坐标是(410,680,180),僅供大家參考。

單擊播放按鈕,如果藍圖正常工作的話,你将會看到圓柱體在兩個定點之間來回的移動。

使用藍圖的優點之一是它建立了一個功能性模闆,這個模闆可以被場景中的很多對象進行使用。在blueprints檔案夾中找到cylindertarget_blueprint并将它直接拖到3d視圖中,可建立另一個繼承原始目标圓柱體功能的圓柱體。通過這個方法,我們通過僅僅使用設定藍圖邏輯,就可以快速地建立很多移動的目标。

繼續閱讀