減小包大小不僅可以使縮短用戶(hù)下載時(shí)間有缆,還可以節(jié)省流量,同時(shí)AppStore對(duì)包大小也有限制温亲。
排查Resources目錄
Resources目錄中的所有資源妒貌,不管有沒(méi)有被引用,都會(huì)被打進(jìn)最終的包中铸豁。所以是重點(diǎn)優(yōu)化目錄。
壓縮貼圖
貼圖是最占資空間的菊碟,非透明貼圖比透明貼圖更節(jié)省空間节芥。除此之外,貼圖的文件格式是不會(huì)影響最終包大小的逆害,因?yàn)闊o(wú)論哪種圖片格式头镊,最終都會(huì)被Unity轉(zhuǎn)成平臺(tái)相關(guān)的貼圖取胎。所以把項(xiàng)目中的psd圖片轉(zhuǎn)成png是沒(méi)有必要的孽水。
最有效的方法是在Unity中設(shè)置圖片的壓縮程度,以及最大尺寸姜凄,調(diào)整到再降低畫(huà)質(zhì)就會(huì)被嚴(yán)重影響為止纯陨。
壓縮模型
模型文件通常也比較占資源坛芽,最方便的方法就是在Unity中設(shè)置其壓縮程度留储。
需要注意的是,這里設(shè)置壓縮咙轩,只能減少本地模型文件的大小获讳,但其在內(nèi)存中占的大小并不會(huì)減少。
壓縮動(dòng)畫(huà)
AnimationClip也可以被壓縮活喊,而壓縮后不僅本地文件變小丐膝,同時(shí)內(nèi)存占用量也會(huì)減少。由于壓縮減少了關(guān)鍵幀钾菊,所以可能會(huì)導(dǎo)致動(dòng)作形變等問(wèn)題帅矗。
音頻格式
小而短的音效,使用wav存儲(chǔ)煞烫;背景音樂(lè)等比較長(zhǎng)的浑此,使用mp3存儲(chǔ)。
同時(shí)音效文件红竭,可以通過(guò)調(diào)整Quality尤勋,來(lái)減少大小。
代碼庫(kù)文件
避免使用一些重型的庫(kù)茵宪,比如System.xml最冰。可以使用Mono.Xml代替稀火。
使用.Net 2.0 Subset
Net 2.0 Subset比.Net 2.0精簡(jiǎn)了不少代碼暖哨,打APK對(duì)比,可以減少0.9M凰狞。
運(yùn)行時(shí)靜態(tài)合拼
如果在Editor中進(jìn)行勾選篇裁,則會(huì)在項(xiàng)目中生成一個(gè)較大的VBO,Runtime時(shí)通過(guò)該VBO來(lái)進(jìn)行渲染赡若,優(yōu)點(diǎn)是有效減少了Draw Call达布,缺點(diǎn)是增大了發(fā)布游戲包的體積。
如果在Runtime通過(guò)腳本來(lái)進(jìn)行Batching逾冬,則相當(dāng)于把拼合的時(shí)間由Editor中搬到了Runtime黍聂,所以加載時(shí)間(一般在場(chǎng)景加載時(shí)執(zhí)行Batching)會(huì)稍有增加,但游戲包的體積將相應(yīng)減少身腻。
https://docs.unity3d.com/560/Documentation/Manual/ReducingFilesize.html