天天看點

UE4學習筆記:關卡流(LevelStream)

通過關卡流可以在需要的時候動态加載關卡,不需要的時候解除安裝,降低記憶體使用率,建構大型場景。通過簡單的示例了解關卡流的用法。

1、建立一個兩個關卡,在關卡裡分别放一個"Level1"和"Level2"的文本,儲存檔案名為StreamLevel1和StreamLevel2

UE4學習筆記:關卡流(LevelStream)

2、建立一個空關卡,并打開Levels視窗

UE4學習筆記:關卡流(LevelStream)

3、在Levels界面,将StreamLevel1和StreamLevel2拖入PersistentLevel下,作為目前關卡的子關卡,如圖所示,可以看到拖進來的兩個關卡

UE4學習筆記:關卡流(LevelStream)

4、在子關卡上右鍵,彈出的菜單可以對子關卡進行一些操作,其中ChangeStreamingMethod可以改變關卡的載入方式,預設是Blueprint,也就是通過藍圖來加載,AlwaysLoaded會在遊戲啟動時就載入,能同時看到所有關卡。如果要在編輯器中隐藏子關卡可以 将對應的子關卡前面的眼睛點一下就可以了。

UE4學習筆記:關卡流(LevelStream)

5、打開關卡藍圖,寫入如下藍圖代碼,這段代碼在使用者按下空格鍵時判斷StreamLevel1有沒有打開,如果沒有打開就使用LoadStreamLevel打開,并使用UnloadStreamLevel解除安裝StreamLevel2(即使沒打開過也不會出錯),否則打開StreamLevel2并解除安裝StreamLevel1,結果就是每按下空格鍵就會在StreamLevel1和StreamLevel2之間切換。

UE4學習筆記:關卡流(LevelStream)

6、以上是通過藍圖代碼加載關卡流,還可以通過LevelStreamingVolume自動加載,在使用者進入該體積内,對應的關卡就會載入。調整上面兩個子關卡位置,并在目前關卡中拖入兩個LevelStreamingVolume放到合适的位置,這裡還放了兩個錐體作為位置辨別。

UE4學習筆記:關卡流(LevelStream)

7、在關卡界面點選Summons level details打開關卡詳情視窗

UE4學習筆記:關卡流(LevelStream)

8、在關卡詳情頁面添加Streaming Volumes項,選擇關卡中對應的關卡流體積,Inspect level可以切換子關卡

UE4學習筆記:關卡流(LevelStream)

9、運作後角色走到體積處,子關卡就會自動加載出來了

UE4學習筆記:關卡流(LevelStream)

附1:如果要在目前關卡編輯子關卡,可以使用MakeCurrent,後面的編輯就是針對這個子關卡了,比如拖入物體就是拖到子關卡中

UE4學習筆記:關卡流(LevelStream)

附2:OpenLevel也用于動态加載關卡,但是會解除安裝目前關卡,而關卡流不會解除安裝目前關卡

UE4學習筆記:關卡流(LevelStream)

附3:下圖是其他一些與關卡相關的節點,LoadLevelInstance能打開多個關卡執行個體,并設定關卡位置和旋轉,GetCurrentLevelName用于擷取目前關卡名。

UE4學習筆記:關卡流(LevelStream)