1. 程式人生 > 其它 >虛幻4藍圖入門例項4:一把鑰匙開一扇門

虛幻4藍圖入門例項4:一把鑰匙開一扇門

一、門的藍圖事件構建

1.認識新的元件(門)


接著上回實現按鍵開關門後,我們來認識一下這次所需要的一些藍圖事件元件,首先是這個“分支”(Branch),顧名思義,就是一種判斷,所以有著true和false兩個可能的選擇,又不同於之前所提到的Flip Flop分支的判斷更純粹和簡單明瞭,它的作用是判斷一個東西是對或錯然後進行任務輸送,而不是像Flip Flop來判斷事件情況然後輸送走向


如名,該元件就是用來除錯時列印輸出字元結果的一個列印元件

2.初識變數


我們在事件藍圖的左邊工具欄中可以直接新增變數元件,被新增的元件預設為一個布林值(英文名:bool,一個能被判斷為true或false),我們命名為開門條件


在選中我們的變數元件後我們可以在右工具欄中檢視到細節,在這裡我們可以更改它的型別,和預設值,因為我們理想中的門的一開始狀態為關著的所以我們不勾選預設值的開門條件(不勾就預設為false)

3.連線藍圖事件元件


我們將我們的鍵盤E鍵直接接入分支,就是用E來傳輸任務,然後我們將我們建好的“開門條件”直接拖到藍圖事件表中,連線到分支的情景,這樣分支就會來判斷boll開門條件的bool來進行true和false的操作,那true就是進行開門,false就平臺控制中顯示“你需要鑰匙”。完整藍圖如下!

那此時我們將門佈局到場景中並進行按E開門將被提示“你需要鑰匙”

而之後我們就要開始來建立我們的鑰匙類從而來實現獲取鑰匙開門


二、鑰匙藍圖的構建

1.認識所需元件


我們先搭建好我們的鑰匙檢視,由於我並沒有鑰匙模型,所以這裡我用一個幾何體來充當我們的鑰匙,這裡的盒子觸發器我選用了Sphere Collision其實和之前的Box Collision沒什麼多大不同,只不過這個為圓形狀的而已


獲取類的所有actor在這裡是作為一個我們進行操作其他藍圖類的橋樑,因為我們的鑰匙是要和門有一個必要連線的而我們即又非直接在光卡藍圖中建立,關於藍圖類和關卡藍圖的相關隨筆可瀏覽
https://www.cnblogs.com/nuoxiang/p/15671072.html


銷燬Actor元件即讓該元件在場景中消失,這樣我們就可以達到一個獲取鑰匙的效果

2.連線藍圖事件元件


首先當我們進入可以拾取鑰匙的區域後我們可以進行E來進行拾取,所以鑰匙藍圖的前半部分為上圖


我們新增“獲取類的所有actor”並選擇類為我們之前的門的藍圖類(這裡我的門的藍圖類為:openthedoor_bp)


我們從“獲取類的所有actor”的“Out Actors”拉出一條連線線然後搜尋get(複製)選擇新增,這裡的get的存在定義是為一個數組的存在,因為陣列是從0開始的,而我們這裡的任務為一把鑰匙開一扇門,所以我們在get的數值填寫0即可,若是這把鑰匙不是開我們的第一扇而是第二扇時我門就改為1,以此類推

那這時的我們就在獲取的藍圖類(opethedoor)中可以進行它的變數(開門條件)進行設定將開門條件打上勾,我們就將開門條件這個bool值變為了true,最後我們再銷燬我們撿到的鑰匙。鑰匙藍圖整體事件藍圖如下圖所示


三、最後的測試

1.拾取鑰匙

2.開門


四、總結

本次實現鑰匙開關門是一種互動感的增強,在許多遊戲中我們都有所體驗過這類的互動效果,而利用這樣的互動理念我們能衍生更多的互動方式和方法,從而更好到實現實時互動和真是互動體驗,許多解密遊戲也是通過bool變數來進行著整個遊戲的流程控制。
門的自動開關和互動實現就先到這裡告一段落了,而之後可能會取做一些其他現時接觸類的藍圖,從而引進更多的藍圖元件和學習知識,最後再以綜合案例來鞏固和完善我們的藍圖構思。