目錄
效果
步驟
一、無限生成磚塊?
二、制作門
三、停止移動并生成門
四、進入門
效果
步驟
一、無限生成磚塊?
1. 新建一個Basic關卡,再新建一個Pawn類,這里命名為“BP_MyPawn”
打開“BP_MyPawn”,添加一個膠囊體碰撞組件和一個攝像機組件
在事件圖表中先添加一個布爾變量,用于表示玩家是否點擊,當該布爾為false時攝像機就一直往前走,為true時就停下并生成一道門。這里變量命名為“IsStop”
在事件圖表中添加如下節點,表示當“IsStop”為false時就讓Pawn每幀沿著X軸負方向走1cm。當按下1鍵后設置IsStop為True
讓攝像機旋轉180°
2. 在世界大綱中設置注意一下天空的可移動性要為“可移動”,位置為世界中心。不然當Pawn一直移動就會走出這個天空球體區域
向場景中拖入兩個立方體,位置分別為(0,50,0)、(0,-50,0)
設置立方體也是可移動的
再拖入一個玩家出生點放置在兩個方塊的正上方
多復制一些立方體用于表示道路,這里一共放了14個立方體
我們可以將這些立方體都放置到同一個文件夾中
3. 新建一個actor藍圖,這里命名為“BP_MenuRoad”
打開“BP_MenuRoad”,添加兩個立方體靜態網格體組件,這里分別命名為“Cube_L”和“Cube_R”
設置“Cube_R”和“Cube_L”的位置也分別為(-600,-50,-400)和(-600,50,-400)
繼續添加一個公告板組價和一個盒體碰撞區域組件
設置一下盒體碰撞區域組件的位置和盒體范圍
為了方便觀察我們可以讓盒體碰撞區域組件顯示
4. 將“BP_MenuRoad”拖入場景中,設置一下位置為(-100,0,50)
此時在左視圖中可以看到在“BP_MenuRoad”中兩個方塊如果提升高度的話正好可以補充后續的道路
5. 回到“BP_MenuRoad”,在事件圖表中添加盒體碰撞組件重疊時的觸發邏輯:
首先當pawn進入到盒體碰撞區域后判斷一下玩家是否停止移動。
如果停止移動就生成門,沒有停止的話就繼續生成道路磚塊
?
添加道路磚塊:
?生成磚塊之后用一個隨機布爾來控制左右哪個磚塊先上升,
布爾為true就左邊磚塊先上升,然后約0.1~0.3s后讓右邊磚塊上升。布爾為false就右邊先上升然后再左邊上升。
時間軸曲線如下,三個關鍵幀分別為(0,-400),(2,20),(3,0)
最后延遲10s,若玩家沒有停止就刪除磚塊。
合并上面的節點,這里命名為合并后的圖表為“EndlessRoad”
此時運行效果如下:
二、制作門
6. 這里準備用Niagara制作一個傳送門,具體參考:【UE Niagara】制作傳送門_Part1_ue
效果如下:
注意每一個發射器都需要勾選“本地空間”
三、停止移動并生成門
7. 新建一個Actor藍圖用于表示門,這里命名為“BP_Door”。該藍圖中添加了一個Niagara組件。
Niagara系統資產使用“NS_Portal”
在事件圖表中添加如下節點,表示當“BP_Door”創建后就按照時間軸曲線修改粒子的Z軸上的位置
時間軸曲線如下,三個關鍵幀分別為(0,-500)、(2,300)、(3,200)
8. 在“BP_MyPawn”中設置停止后創建“BP_Door”
此時當我們按下1鍵后,效果如下:
9. 我們希望Pawn停止的時候有一個慣性來慢慢停止移動,可以用時間軸來慢慢減少Pawn的偏移量
時間軸曲線如下,兩個關鍵幀分別為(0,-1)、(2,0)
此時運行游戲可以觀察到當我們按下1鍵停止時會有一種慣性的效果讓視角繼續向前移動一點距離,然后生成門。
四、進入門
接下來我們希望點擊按鈕進入門,然后進入新關卡
10. 可以先創建一個控件藍圖,這里命名為“WBP_StartGame”,該控件主要包含一個覆蓋全屏的按鈕和一個文本
當控件藍圖創建后,將“點擊進入”字樣的文本彈出,然后顯示鼠標
當按下按鈕后讓pawn快速向前移動,然后逐漸開始白屏,最終進入新的關卡
11. 在“BP_MyPawn”中設置當創建了門后就創建控件
最終效果如下:
參考視頻:
https://www.bilibili.com/video/BV1K44y1W7vh/?spm_id_from=333.999.0.0&vd_source=36a3e35639c44bb339f59760641390a8
https://www.bilibili.com/video/BV1yT4y1D7wA/?spm_id_from=333.788.recommend_more_video.5&vd_source=36a3e35639c44bb339f59760641390a8