unity 中大場景的流式加載

####0:討論羣git

qq羣號:390313628 unity 4.6 版本運行.net

Demo源碼:http://git.oschina.net/liyonghelpme/unityRpg qq羣:390313628設計

####1.問題 對於比較大的場景來說,一次性加載進內存,缺點是內存佔用較大,加載時間較長,優勢實現簡單,後續遊戲會比較流暢。 可是對於一些特別複雜的場景,場景物件比較多的狀況下,則須要引入流式的場景加載方法,根據玩家的時間和空間的局部性,只加載當前遊戲的內容。遊戲

####2.系統設計 這樣須要場景有多層設計,最簡單的是兩層設計。上層設計數據量少能夠完整放到內存中,而細節設計則在須要的時候加載,例如這裏參考火炬之光給出一個基於房間的設計思路。 火炬之光的大場景由一個個小的房間拼接而成,每一個房間有兩個鏈接處,對於入口和出口,只有一個鏈接處,而一個大場景即經過小房間的對應口的鏈接而構成。 參考一個關卡的設計: 輸入圖片說明圖片

#####2.1 存儲 有了房間的概念以後,咱們將關卡由哪些房間組成保存起來,也能夠根據鏈接關係生成隨機的房間。 對每一個房間內部的結構,獨立保存起來,針對火炬之光的房間來說,火炬的放假都是由小元素塊拼接而成,所以能夠首先分離每一個小元素塊,接着存儲房間內每一個位置使用哪一個小元素塊。內存

#####2.2加載過程 加載的過程即首先判斷玩家在哪一個房間,接着預先加載臨近的房間。 整個流程以下: 加載起始入口房間,須要等待整個入口加載結束才能進入遊戲; 預先加載下一個房間,下一個房間採用每幀加載一個塊的機制,等玩家靠近下一個房間的時候,已經加載結束了。 接着每當玩家進入一個新房間,則繼續預先加載下一個房間。get

具體代碼能夠參考Demo中的StreamLoadLevel.cs 和LevelConfigData.cs源碼

輸入圖片說明

輸入圖片說明

輸入圖片說明

相關文章
相關標籤/搜索