[Unity-24] Unity的四種載入場景的方法

weixin_34120274發表於2016-03-16

Unity官方提供了4種載入場景(scene)的方法。各自是:
1. Application.LoadLevel():同步載入
2. Application.LoadLevelAsync():非同步載入
3. Application.LoadLevelAddictive():同步附加式載入
4. Application.LoadLevelAddictiveAsync():非同步附加式載入

以下對這四種方法進行簡要的介紹和分析:
1.同步載入:如果當前場景為A,我們要切換到場景B,unity會在切換場景的時候將場景B中的全部內容(場景B中全部的靜態物體,不包含興許程式碼中Instantiate例項化的物體)都載入到記憶體中。然後銷燬A,顯示B。

因為載入B是同步進行的(也就是在一個執行緒中),所以當B場景較大的時候執行此方法會感覺到卡頓。
2.非同步載入:這個與第一種情況基本一樣,唯一的差別是載入B的過程是非同步的(也就是載入新場景的行為是在一個後臺執行緒中進行的。不影響主執行緒的執行),這樣在載入B的時候當前場景A不受影響,能夠繼續執行,所以即使場景B非常大也不會感覺到卡頓。


3.同步附加式載入:如果當前場景是A,我們要載入場景B,unity在載入B的時候不會銷燬A,也就是說載入結束之後A和B將同一時候存在,這個適合於世界地圖比較大的時候。依據人走到的位置來動態的載入世界地圖中的不同部分。當然前提是將世界地圖做成多個不同的scene檔案。


4.非同步附加式加:這樣的情況與上一種基本一樣,差別仍然在於載入B的過程是在一個後臺執行緒中非同步進行的。

注意:非同步載入的方式最基本的應用就是製作場景切換過程中的過渡介面。

詳細方法能夠參見雨鬆大大的blog。

地址:http://www.xuanyusong.com/archives/1427/

相關文章