虛幻4動態加載畫面(後臺加載關卡)的實現

我們知道虛幻裏要加載新的關卡一般是通過Open Level函數實現,如下所示。

這裏寫圖片描述

但是,load level函數會阻塞進程,如果之前有加載動畫在播放的話,當執行load level函數時,所有進程都停止,動畫將會停止。如下爲驗證藍圖。
這裏寫圖片描述

loading是一個widget藍圖,其含有throbber控件,可以模擬加載動畫。根據實測,這個藍圖無法實現動態的加載畫面,在open level執行後,所有其他代碼都停止執行了。這一點可以在創建loading 控件藍圖後使用delay函數,延遲執行open level驗證。在delay時間內,loading都會動態顯示,當開始執行open level時,動畫停止。

根據這幾天在官方論壇的搜索,目前普遍的做法是使用level stream關卡流。level stream本來是用來動態加載超級無限大地圖的,防止一次性加載大地圖“卡死”。它可以根據設置的觸發條件動態的加載、卸載地圖map,也就是子關卡。
所以,使用level stream必選改變當前關卡的層級關係。在“窗口”菜單下找到“關卡”,如下所示,點擊左上角的level可以給當前關卡添加子關卡(創建新關卡或者添加現有的)。

這裏寫圖片描述

在任一子關卡上右擊,彈出對話框,如下。在“Change Streaming Method”下可以選擇當前關卡是“總是加載”還是通過“藍圖”控制。選擇“藍圖”,在啓動當前關卡(比如開始的遊戲UI界面)時就不會加載子關卡,通過load stream level就可以在後臺加載子關卡而不會影響當前其他進程(如正在進行的動態加載畫面)。
這裏寫圖片描述

實現的藍圖如下。

這裏寫圖片描述

所以,最終的區別就是open level和load stream level的區別。

發佈了23 篇原創文章 · 獲贊 68 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章