Unity場景載入四種方式,不同遊戲場景載入方式不同
阿新 • • 發佈:2018-11-27
以前只是負責用,卻不知道里面的具體含義,特定去查看了一下資料。記錄下來。
- Application.LoadLevel():同步載入
- Application.LoadLevelAsync():非同步載入
- Application.LoadLevelAddictive():同步附加式載入
- Application.LoadLevelAddictiveAsync():非同步附加式載入
四種方法進行簡要的介紹和分析
1.同步載入:如果當前場景為A,我們要切換到場景B,unity會在切換場景的時候將場景B中的全部內容(場景B中全部的靜態物體,不包含興許程式碼中
因為載入B是同步進行的(也就是在一個執行緒中),所以當B場景較大的時候執行此方法會感覺到卡頓。
2.非同步載入:這個與第一種情況基本一樣,唯一的差別是載入B的過程是非同步的(也就是載入新場景的行為是在一個後臺執行緒中進行的。不影響主執行緒的執行),這樣在載入B的時候當前場景A不受影響,能夠繼續執行,所以即使場景B非常大也不會感覺到卡頓。
3.同步附加式載入:如果當前場景是A,我們要載入場景B,unity在載入B的時候不會銷燬A,也就是說載入結束之後A和B將同一時候存在,這個適合於世界地圖比較大的時候。依據人走到的位置來動態的載入世界地圖中的不同部分。當然前提是將世界地圖做成多個不同的
4.非同步附加式加:這樣的情況與上一種基本一樣,差別仍然在於載入B的過程是在一個後臺執行緒中非同步進行的。
注意:非同步載入的方式最基本的應用就是製作場景切換過程中的過渡介面。