Unity3D之如何將包大小減少到極致

2022-06-18 10:30:19 字數 1342 閱讀 4819

首先來展示下,官方如何說的:

( 官方手冊)

1.替換jpg,使用psd,減少重複資源

2.剔除不必要的資源

3.打包時檢視log紀錄,由此判斷需要減少的檔案型別

4.優化,壓縮,減少大小

5.優化,壓縮網格和動畫,減少檔案大小

6.剔除system.dll和system.xml.dll ,盡量不要依賴他們,或用其他元件來代替。

這些官方解釋對我們幫助甚少。我把包分成三段:1.首包(裡面包含了最最必要的資源)。2.首次進入包載入(載入遊戲執行必要的資源)。3.遊戲執行中資源載入(按每個遊戲不同各自定義,以場景和單位個體為主要,在畫面進入時載入資源,載入結束後再執行並顯示)。

關於u3d的assetbundle資源載入與打包封裝,請檢視《unity3d之assetbundle資源載入封裝》這篇文章。

下面說說關於動態資源載入和資源匯入記憶體的所有方式,這是優化資源的必要條件,因為只有你知道了所有的載入和匯入途徑你才能對專案資源優化進行全面的分析。知道了有哪幾條路你才能選擇一條最好的。如下:

利用動態資源載入有幾種方式:

1.將資源放入assetstream資料夾隨打包一起打入檔案。

2.將部分資源放在伺服器,遊戲前或遊戲中進行載入,並儲存到本地。

其實www.loadfromcacheordownload載入機制也可以算一種,但好像u3d4.5.2開始已經摒棄這個介面,不再開放,因為它也開始意識到這個介面容易給人造成誤解,而且不好用。

資源匯入記憶體的方式有幾種:

1.從resources資料夾中匯入。這是阻塞載入最常見的方式,介面resources.load();

2.從某位址載入資源www。這是非同步載入最常見方式,介面new www(path);

3.直接從檔案或者bytes生成assetbundl,介面:assetbundle.createfromfile阻塞方法, assetbundle.createfrommemory非同步方法,assetbundle.createfrommemoryimmediate阻塞方法

4.使用file類載入檔案,file.readallbytes,file.readalltext。

有了資源載入和記憶體匯入後,還需要配備資源驗證方式,這樣整個專案動態載入體制才完善。資源版本更新方式可以使用json格式並以檔案形式檢視。驗證方式的理解,還需要大家使用在專案裡才能體會到真正的用途,才能將原理牢記於心。

驗證資源版本有幾種:

2.單個資源檔案的時間戳驗證。步驟:1.客戶端向伺服器傳送資源版本號。2.伺服器匹配最新版本號,如果不同就重新傳送乙份資源版本列表,裡面包含了資源檔案的時間戳。3.儲存版本列表。4.在客戶端需要載入該資源時比較時間戳是否一致,如果不一樣或這不存在就載入資源檔案並儲存固定時間戳。

Unity3D之如何將包大小減少到極致

首先來展示下,官方如何說的 官方手冊 1.替換jpg,使用psd,減少重複資源 2.剔除不必要的資源 3.打包時檢視log紀錄,由此判斷需要減少的檔案型別 4.優化,壓縮,減少大小 5.優化,壓縮網格和動畫,減少檔案大小 6.剔除system.dll和system.xml.dll 盡量不要依賴他們,...

Unity3D之如何將包大小減少到極致

首先來展示下,官方如何說的 官方手冊 1.替換jpg,使用psd,減少重複資源 2.剔除不必要的資源 3.打包時檢視log紀錄,由此判斷需要減少的檔案型別 4.優化,壓縮,減少大小 5.優化,壓縮網格和動畫,減少檔案大小 6.剔除system.dll和system.xml.dll 盡量不要依賴他們,...

Unity3D之如何將包大小減少到極致

首先來展示下,官方如何說的 官方手冊 1.替換jpg,使用psd,減少重複資源 2.剔除不必要的資源 3.打包時檢視log紀錄,由此判斷需要減少的檔案型別 4.優化,壓縮,減少大小 5.優化,壓縮網格和動畫,減少檔案大小 6.剔除system.dll和system.xml.dll 盡量不要依賴他們,...