使用AssetBundles時,您能夠隨意將任何Asset分配給所需的任何Bundle。可是,在設置Bundles時,須要考慮一些策略。這些分組策略可使用到任何你認爲適合的特定項目中。你能夠爲所欲爲地混合和匹配這些策略。html
邏輯實體分組是根據其所表明的項目的功能部分將資產分配給AssetBundles的。這包括諸如用戶界面、人物、環境以及在整個應用程序的整個生命週期中頻繁出現的其餘部分。git
邏輯實體分組是可下載內容(DLC)的理想選擇,由於以這種方式分離的全部內容,您能夠對單個實體進行更改,而不須要下載其餘未更改的資產。
可以正確實施這一策略的最大的竅門是,開發人員將資產分配給各自的Bundle必須熟悉項目中每一個資產的使用時間和位置。github
對於此策略,您能夠將類似類型的Assets(如音軌或語言本地化文件)分配給單個AssetBundle。併發
類型分組是構建要由多個平臺使用的AssetBundles的更好策略之一。例如,若是您的音頻壓縮設置在Windows和Mac平臺之間是相同的,您能夠將全部音頻數據本身打包到AssetBundles中,並重復使用這些Bundles,而着色器則傾向於使用更多的平臺特定選項進行編譯,所以你爲Mac構建的着色器包可能不能在Windows上重複使用。此外,這種方法很是適合使你的AssetBundles與更多的Unity版本兼容,如同紋理壓縮格式和設置的更改頻率比你的腳本或預製體的更改頻率更低。佈局
併發內容分組是將要同時加載和使用的Assets捆綁在一塊兒的想法。您能夠將這些類型的Bundles用於基於關卡的遊戲,其中每一個關卡都包含徹底獨特的角色、紋理、音樂等。你要絕對確定的是,包含在這些AssetBundles中一個Asset被使用的同時,其他的Assets也會被使用。對併發內容分組捆綁中的單個資產的依賴將致使加載時間的顯著增長。你將由於這個單一Asset而被迫下載整個Bundle。動畫
併發內容分組的Bundles最經常使用的用例是基於場景的Bundles。在此分配策略中,每一個場景Bundle應該包含大部分或所有場景依賴關係。翻譯
注意,一個項目徹底能夠而且應該根據須要來組合這些策略。對於任何給定的場景使用最優資產分配策略能夠極大地提升任何項目的效率。3d
例如,一個項目可能決定將其用於不一樣平臺的用戶界面(UI)元素分組到他們本身的特定於平臺的UI Bundle中,但按照關卡或場景對其交互式內容進行分組。htm
無論你遵循什麼策略,這裏有一些額外的建議值得你銘記在心:對象
同系列文章
本文做者: Sheh偉偉
本文連接: http://davidsheh.github.io/2017/08/13/「翻譯」Unity中的AssetBundle詳解(二)/
版權聲明: 本博客全部文章除特別聲明外,均採用 CC BY-NC-SA 3.0 許可協議。轉載請註明出處!