《Unreal Engine 4蓝图可视化编程》一1.6 改变目标方向
本節書摘來異步社區《Unreal Engine 4藍圖可視化編程》一書中的第1章,第1.6節,作者: Brenden Sewell 譯者: 陳東林 責編: 胡俊英,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。
1.6 改變目標方向
如果現在編譯、保存藍圖,然后開始測試游戲,你期待看到什么結果?目標圓柱體會在游戲開始的時候根據設定的速度和方向移動。然而,由于我們沒有任何引起目標停止運動的指令,所以目標圓柱體將隨著游戲運行一直移動,甚至會穿越場景中的對象。為了解決這個問題,我們需要一個邏輯來周期性的改變目標的方向。這將使目標像移動的標靶一樣,在兩點之間規律地來回移動。
我們需要設置兩個節點,為方向變量設置兩個不同的值。拖曳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所示,如果你完成了,請編譯并保存藍圖。
測試移動的目標
現在我們已經將藍圖更新過了,可以測試查看目標圓柱體對象是否按照預期進行移動。首先,我們需要將目標圓柱體對象放在Y軸方向上沒有障礙物的地方,確保在Y軸上運動不會與其他物體碰撞,這里采用的坐標是(410,680,180),僅供大家參考。
單擊播放按鈕,如果藍圖正常工作的話,你將會看到圓柱體在兩個定點之間來回的移動。
使用藍圖的優點之一是它創建了一個功能性模板,這個模板可以被場景中的很多對象進行使用。在Blueprints文件夾中找到CylinderTarget_Blueprint并將它直接拖到3D視圖中,可創建另一個繼承原始目標圓柱體功能的圓柱體。通過這個方法,我們通過僅僅使用設置藍圖邏輯,就可以快速地創建很多移動的目標。
總結
以上是生活随笔為你收集整理的《Unreal Engine 4蓝图可视化编程》一1.6 改变目标方向的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Cisco QoS认证考试指南(第2版
- 下一篇: 5 个关于 API 中日期和时间设计规则