Unity----Scene加載問題


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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM