「翻譯」Unity中的AssetBundle詳解(二)

爲AssetBundles準備資源

使用AssetBundles時,您能夠隨意將任何Asset分配給所需的任何Bundle。可是,在設置Bundles時,須要考慮一些策略。這些分組策略可使用到任何你認爲適合的特定項目中。你能夠爲所欲爲地混合和匹配這些策略。html

邏輯實體分組

邏輯實體分組是根據其所表明的項目的功能部分將資產分配給AssetBundles的。這包括諸如用戶界面、人物、環境以及在整個應用程序的整個生命週期中頻繁出現的其餘部分。git

例子

  • 把用戶界面的全部紋理和佈局數據打包到一塊兒
  • 把人物角色所包含的全部的模型和動畫打包到一塊兒
  • 把多個關卡中共用的紋理和模型打包到一塊兒

邏輯實體分組是可下載內容(DLC)的理想選擇,由於以這種方式分離的全部內容,您能夠對單個實體進行更改,而不須要下載其餘未更改的資產。
可以正確實施這一策略的最大的竅門是,開發人員將資產分配給各自的Bundle必須熟悉項目中每一個資產的使用時間和位置。github

類型分組

對於此策略,您能夠將類似類型的Assets(如音軌或語言本地化文件)分配給單個AssetBundle。併發

類型分組是構建要由多個平臺使用的AssetBundles的更好策略之一。例如,若是您的音頻壓縮設置在Windows和Mac平臺之間是相同的,您能夠將全部音頻數據本身打包到AssetBundles中,並重復使用這些Bundles,而着色器則傾向於使用更多的平臺特定選項進行編譯,所以你爲Mac構建的着色器包可能不能在Windows上重複使用。此外,這種方法很是適合使你的AssetBundles與更多的Unity版本兼容,如同紋理壓縮格式和設置的更改頻率比你的腳本或預製體的更改頻率更低。佈局

併發內容分組(Concurrent Content Grouping)

併發內容分組是將要同時加載和使用的Assets捆綁在一塊兒的想法。您能夠將這些類型的Bundles用於基於關卡的遊戲,其中每一個關卡都包含徹底獨特的角色、紋理、音樂等。你要絕對確定的是,包含在這些AssetBundles中一個Asset被使用的同時,其他的Assets也會被使用。對併發內容分組捆綁中的單個資產的依賴將致使加載時間的顯著增長。你將由於這個單一Asset而被迫下載整個Bundle。動畫

併發內容分組的Bundles最經常使用的用例是基於場景的Bundles。在此分配策略中,每一個場景Bundle應該包含大部分或所有場景依賴關係。翻譯

注意,一個項目徹底能夠而且應該根據須要來組合這些策略。對於任何給定的場景使用最優資產分配策略能夠極大地提升任何項目的效率。3d

例如,一個項目可能決定將其用於不一樣平臺的用戶界面(UI)元素分組到他們本身的特定於平臺的UI Bundle中,但按照關卡或場景對其交互式內容進行分組。htm

無論你遵循什麼策略,這裏有一些額外的建議值得你銘記在心:對象

  • 將常常更新的對象拆分紅AssetBundles,這些對象與不多更改的對象分開
  • 組合可能同時加載的對象。如一個模型,它的紋理和動畫
  • 若是你注意到多個AssetBundles中的多個對象取決於徹底不一樣的AssetBundle中的單個資產,請將依賴關係移動到單獨的AssetBundle。若是幾個AssetBundles引用了其餘AssetBundles中的同一組資產,可能值得將這些依賴關係拉入共享的AssetBundle以減小重複。
  • 若是兩套對象不太可能同時加載,例如標清和高清資產,請確保它們在本身的資產組合中。
  • 若是一個AssetBundle中常常有少於50%的Bundle在同一時間加載,那麼能夠考慮拆分該AssetBundle。
  • 若是有一些小的AssetBundles(少於5到10個資產的)常常同時被加載,能夠考慮組合這些AssetBundles。
  • 若是一組對象只是同一對象的不一樣版本,可考慮使用AssetBundle Variants

原文連接:
Preparing Assets for AssetBundles


同系列文章

「翻譯」Unity中的AssetBundle詳解(一)

「翻譯」Unity中的AssetBundle詳解(二)

「翻譯」Unity中的AssetBundle詳解(三)

「翻譯」Unity中的AssetBundle詳解(四)


本文做者: Sheh偉偉
本文連接: http://davidsheh.github.io/2017/08/13/「翻譯」Unity中的AssetBundle詳解(二)/
版權聲明: 本博客全部文章除特別聲明外,均採用 CC BY-NC-SA 3.0 許可協議。轉載請註明出處!

相關文章
相關標籤/搜索