遊戲設計 AssetBundle
獨立資源包 避免佔用多於記憶體(資源) 模型資源 UI(貼圖)資源 聲音資源 遊戲場景 AssetBundles 動態載入資源 全部載入資源
獨立資源包 更新資源包,不更新遊戲檔,增加更新速度 更新遊戲檔 重新送審 AssetBundles 聖誕風格 原始遊戲風格
AssetBundle 工作流程 4.從AssetBundle 讀取資源 3.在run time時下載 AssetBundle到應用中 外部儲存空間 1.建立AssetBundle
Asset Bundle內部儲存結構 Normal AssetBundle structure
創建 Asset Bundles Asset Bundle Name 於 Project 視窗選取欲加入 Asset Bundle 的 Asset 更改 Asset Bundle Name (預設為 None)
創建 AssetBundle Asset Bundle Name 於 Project 視窗選取欲加入 AssetBundle 的 Asset 更改 AssetBundle Name (預設為 None) 使用現有 AssetBundle 或新增 不加入 現有 新增 移除未使用
創建 AssetBundle 於 Project 視窗建立新資料夾 /Assets/Scripts/Editor 於資料夾內新增 C# Script “AssetBundleBuilder” 目的在於新增選單按鈕,直接執行 AssetBundle 匯 出功能
創建 AssetBundle 將所有已建立的 AssetBundle 匯出 BuildPipeline.BuildAssetBundles 須預先創立資料夾
創建 AssetBundle – 範例 建立兩組顏色不重複的 Prefab 物件 指定不同的 AssetBundle Name AssetBundle 不限定於 Prefab ,Texture、Material亦可 Prefab 匯出時會連綁定的元件(Component)一同輸出
創建 AssetBundle – 範例 ※AssetBundle 匯出完成後,即可將 Project 內的 Prefab 刪除 assetbundle0.manifest ※AssetBundle 匯出完成後,即可將 Project 內的 Prefab 刪除
載入 AssetBundle Class WWW: Unity 內建功能,可擷取連結內容 從路徑(file:///X:/...)或網址(http://...)載入 AssetBundle 取得載入完成的 AssetBundle 讀取特定 Asset Class WWW: Unity 內建功能,可擷取連結內容 Function AssetBundle.LoadAsset(string name): 從 AssetBundle 中讀取名為 name 的物件(Object)
C# Script AssetBundleLoader
載入 AssetBundle – 範例 GameObject 空物件
載入 AssetBundle – 範例 UI
載入 AssetBundle – 範例 C# Script AssetBundleLoader 讀取欲匯入的 AssetBundle
卸載 AssetBundle C# Script AssetBundleLoader Function AssetBundle.Unload (bool unloadAllLoadedObjects): 當 unloadAllLoadedObjects 為 false 時,會完整保留已讀取並生成於場景(scene)中的物件。 當 unloadAllLoadedObjects 為 true 時,雖會保留形狀,但會遺失貼圖(texture)及材質(material)等元件(component)。
Asset Bundle Manager Asset Store – AssetBundle Manager & Example Scenes Tutorial – AssetBundles and the AssetBundle Manager