拾取鑰匙打開門:玩家通過尋找鑰匙,通過鑰匙來控制門的打開關閉,類似解密;
1.創建藍圖類和模型:
創建的方法如我的上一篇文章: 鍵盤控制門 <--戳這裏
如果你看過我之前的幾篇關於開關門的文章,就很容易了,這裏我就不多說了;
其他此類文章 <--
2.處理藍圖,事件圖表
和鍵盤控制門不同的是,鍵盤控制門是當玩家靠近時按下E鍵就發生相應的事件,而鑰匙開關門是
1.玩家尋找鑰匙
2.靠近門(進入盒體觸發器區域)
3.按下E鍵
所以兩者的不同之處就是先要尋找鑰匙,不然門不會開
有編程基礎的人可能一下子就會想到可以用一個bool變量來控制,1表示可以開門,0表示不能開門,當找到鑰匙的時候就將這個bool變量置爲1,默認情況下爲0;
那我們在藍圖中實現:
1.門藍圖類:
保留之前”鍵盤控制門“的所有邏輯:
新增:
在左側找到“變量”,點擊+,添加bool變量,點擊新建的變量可以在右側修改變量類型及默認值
連接:
其中分支相當於是一個if,Condition是用於判斷的條件
邏輯:按下E鍵,判斷bool變量“是否開門”的值,如果爲1走True執行開門,如果爲0走False打印提示字符串
門藍圖類的總連接圖:
編譯,保存
2.鑰匙藍圖類
點擊藍圖,選擇新建空白藍圖類,選擇第一個Actor,然後保存路徑,命名,完成後就會生成在的路徑下
雙擊此藍圖類
點擊左上角添加組件,選擇common下的靜態網格體組件,起名爲key,點擊該組件,在右側可以添加網格體和材質
(你也可以去網上下載一個鑰匙模型,我這裏就用正方體代替了)
在左側再次點擊添加組件,搜索Sphere(球體觸發器),選擇Sphere Collision,點擊添加的Sphere,調整大小,意義是玩家在進入該觸發器區域內時纔可以拾取鑰匙
點擊Sphere,在右側滑倒最下面,添加事件中的開始重疊和結束重疊(進入觸發器區域和離開觸發器區域)
和開門一樣,也需要按鍵拾取,這裏假如還是E,原理和門一樣,這裏就不說了
(我在進入觸發器區域的時候加了一個測試提示可以拾取)
Q:剩下的邏輯就是我拾取鑰匙之後怎麼才能設置剛剛的bool變量(這是兩個毫不相干的藍圖類)
A:這時就可以用到 “獲取所有Actor的類” (右鍵搜索)
在Actor Class中找到你自己剛剛建的門的類名
Q:一個場景中可能有很多個門,那我們怎麼找到對應的門呢?
A:這裏面是用數組存的(從開始),從Out Actors引腳拖拽拉出搜索get,選擇工具->數組->get(複製)
因爲我們這裏只有這一個門,所以是0
最後一步就是拾取完鑰匙之後,鑰匙就沒了,將其銷燬
右鍵搜索“銷燬” ,選擇“銷燬組件(key)”
總連接:
編譯,保存
將製作好的鑰匙和門拖拽到場景中嘗試: