天天看點

AssetBundle(AB包)定義

AB包是什麼:特定于平台的資産壓縮包,有點類似壓縮檔案

資産:模型、貼圖、預設體、音效、材質球等。(唯獨不能把C#代碼打包進去)是以熱更新使用lua。

AB包作用:相對Resources下的資源AB包更好管理資源、減小包體大小、熱更新

Resources打包時,會将所有的東西都壓縮打包,不管東西有沒有用。而且無法除了Resources.load之外去引用它。

AssetBundle(AB包)定義

 AB包可以壓縮資源、減少初始包大小。例如進遊戲後再下載下傳其他的資料。

熱更新:

AssetBundle(AB包)定義

常見 面試題:

1、請寫出熱更新的概念是什麼?Unity中熱更新的流程是什麼?

概念:指不需要重新下載下傳遊戲用戶端,在遊戲内部進行即時更新

為什麼要用熱更新:

1.防止使用者流失;每次更新如果下載下傳龐大的用戶端安裝包,容易導緻使用者流失

2.微端;可以讓初始安裝包極小,進了遊戲再更新遊戲内容

3.可以做到“狸貓換太子”;先下個羊,進了遊戲再變成狼

流程(每次進遊戲都會走):

1.版本号比較,如果版本号不同才繼續下面的流程(可選,也可以直接下載下傳)

2.下載下傳對比檔案,下載下傳資源伺服器上的的對比檔案

3.對比,用下載下傳的檔案和本地檔案對比,記錄改變的和新增的

4.下載下傳資源,下載下傳剛才記錄的檔案——一般放在Application.persistentDataPath

5.解壓(可選)——如果檔案是壓縮過的,要先解壓

6.覆寫本地對比檔案;保證下載下傳成功後 将下載下傳的對比檔案 覆寫本地的

對比檔案常用技術

MD5碼對比

2、AB包資源加載和Resources資源加載有什麼差別?

1.API不同

2.Resources加載的資源 一定得放在Resources檔案夾下

AB包理論上來說放在任何地方都可以 但一般都放在Application.streamingAssetsPath或Application.persistentDataPath

3.AB包中是資源集合,Resources下都是單個資源

3、AB包對于我們來說有什麼作用?

減少包體大小:因為打AB可以選擇壓縮,壓縮後可以有效減少包體大小

Unity中熱更新的基礎:我們會把資源、Lua腳本打包成AB包,用于熱更新

AssetBundle(AB包)定義