發(fā)布構(gòu)建-減小構(gòu)建的文件大小
將構(gòu)建的應用程序的文件大小保持在最低限度非常重要,尤其是對于移動設備或施加了大小限制的應用商店而言。減小大小的第一步是確定哪些資源對最終大小的影響最大,因為這些資源最有可能是需要優(yōu)化的目標。執(zhí)行構(gòu)建后,可在 Editor 日志中找到此信息。選擇 Console 窗口(菜單:__Window__ >?General?>?Console__),單擊右上角的小下拉選單面板,然后選擇?Open Editor Log__。

Editor 日志提供按類型細分的資源摘要,然后按大小比例順序列出所有各個資源。通常,紋理 (Textures)、聲音 (Sounds) 和動畫 (Animations) 等內(nèi)容占用的空間最多,而腳本 (Scripts)、關(guān)卡 (Levels) 和著色器 (Shaders) 一般影響最小。列表中顯示的__文件標頭 (File headers)__ 不是資源,實際上是添加到“原始”資源文件的額外數(shù)據(jù),用于存儲引用和設置。這些標頭通常與資源大小差別很小,但如果在 Resources 文件夾中有許多大型資源,則該值可能會很大。
Editor 日志有助于識別可能要刪除或優(yōu)化的資源,但在開始之前應考慮以下事項:
Unity 將導入的資源重新編碼為其自己的內(nèi)部格式,因此源資源類型的選擇不是相關(guān)因素。例如,如果項目中有一個多層 Photoshop 紋理,在構(gòu)建之前將其展平并壓縮。將紋理導出為 .png 文件對構(gòu)建大小沒有任何影響,因此應該堅持使用在開發(fā)過程中最方便的格式。
Unity 在構(gòu)建期間會剝離大多數(shù)未使用的資源,因此無法通過從項目中手動刪除資源來獲得任何優(yōu)化效果。唯一不會刪除的資源是腳本(但無論如何,這些腳本通常都非常?。┖?Resources 文件夾中的資源(因為 Unity 無法確定哪些是需要的,而哪些不是)。考慮到這一點,應確保 Resources 文件夾中的所有資源都是游戲所必需的資源。也許可以使用?AssetBundle?替換 Resources 文件夾中的資源;這樣一來,Unity 就會動態(tài)加載資源,從而減小播放器大小。
關(guān)于減小構(gòu)建大小的建議
紋理
紋理通常在構(gòu)建中占據(jù)最多空間。第一個解決方案是使用壓縮的紋理格式。請參閱有關(guān)特定于平臺的紋理壓縮的文檔以了解更多信息。
如果這樣做不足以減小文件大小,請嘗試減小紋理圖像的物理大?。ㄒ韵袼貫閱挝唬H粢诓恍薷膶嶋H源內(nèi)容的情況下執(zhí)行此操作,請在 Project 視圖中選擇該紋理,然后在 Inspector 窗口中減小?Max Size。要查看紋理在游戲中的外觀,請放大使用該紋理的游戲?qū)ο?,然后調(diào)整 __Max Size__,直至該紋理在 Scene 視圖中的外觀開始變差。更改最大紋理大小不會影響紋理資源,只會影響紋理在游戲中的分辨率。

默認情況下,Unity 在導入時會壓縮所有紋理。要在 Editor 中加快工作流程,請選擇?Unity?<?Preferences?并取消選中?Compress Assets on Import?的復選框。無論此設置如何,所有紋理都會在構(gòu)建中進行壓縮。
網(wǎng)格和動畫
可以壓縮網(wǎng)格和導入的動畫剪輯,使它們在游戲文件中占用較少的空間。要啟用網(wǎng)格壓縮,請選擇網(wǎng)格,然后在 Inspector 窗口中將?Mesh Compression?設置為?Low、Medium?或?High。網(wǎng)格和動畫壓縮使用量化技術(shù),這意味著占用更少的空間,但壓縮可能會帶來一定程度的不準確性。請針對具體模型嘗試找到可接受的壓縮程度。
請注意,網(wǎng)格壓縮只是生成較小的數(shù)據(jù)文件,在運行時不會減少使用的內(nèi)存。減少動畫關(guān)鍵幀會生成較小的數(shù)據(jù)文件,并會在運行時減少使用的內(nèi)存;通常應始終啟用該功能。請參閱有關(guān)動畫剪輯的文檔以了解與此相關(guān)的更多信息。
減小 .NET 庫大小
Unity 支持兩個 .NET API 兼容性級別:.NET 4.x 和 .NET Standard 2.0。.NET Standard 2.0 會將您限制在較小的 .NET API 子集中,這有助于減小大小。