Unity3d中文字體大小優(yōu)化

引用:http://www.cnblogs.com/lancidie/p/6285569.html

如何精簡Unity中使用的字體文件

在游戲開發(fā)過程中,為了UI界面美觀和顯示效果一致性的考慮,大部分游戲都會使用動態(tài)字體來表現(xiàn)文字。尤其在這個看臉的時(shí)代,一種字體已經(jīng)無法滿足UI同學(xué)對美觀的需求,因此我們常常發(fā)現(xiàn)若干個小則兩三兆,大則十幾兆的字體文件,這些文件既占包體又占內(nèi)存。因此,對字體的合理使用和優(yōu)化已經(jīng)成為項(xiàng)目中后期優(yōu)化必不可少的一個步驟。這里介紹《極無雙》團(tuán)隊(duì)對于字體裁切的思路和方法。

◆◆

問題描述

我們《極無雙》項(xiàng)目中使用了兩套字庫。黑體字體來顯示大部分既定文本、玩家昵稱、對話等。隸書字體來特殊顯示一些標(biāo)題、武將姓名、稱號、重要對話等需要著重美化顯示的文字。

開始優(yōu)化前,我們習(xí)慣性地在UWA平臺上(www.uwa4d.com)提測了一下,在得到的報(bào)告中查看:內(nèi)存管理>> 具體資源信息 >> 字體資源 這一頁。如下圖所示,那時(shí)候從內(nèi)存曲線圖上看到字體資源占用內(nèi)存高達(dá)12MB。

在此先贊一下UWA測評報(bào)告,其在定位問題資源時(shí)真是高效。報(bào)告很明確地指向了兩個可以優(yōu)化的方向:1)內(nèi)存占用;2)數(shù)量峰值。對于數(shù)量峰值為2表示每個字體各自有一份冗余資源。

究其原因如下:

1)游戲早期登陸階段的場景,以及里面用到的貼圖、字體等資源往往是不能用AssetBundle進(jìn)行加載的。而這些貼圖和字體等資源如果又在AssetBundle里面有依賴,就會在項(xiàng)目中存在相同的兩份;

2)內(nèi)存占用很好理解,基本上字庫的磁盤容量等同于內(nèi)存占用。

◆◆

優(yōu)化方案

1. 字庫裁切

既然我們接下來要做字體精簡的工作,那么針對登陸階段/游戲階段的不同應(yīng)用場景,可以設(shè)計(jì)不同的裁切字庫。最終我們的設(shè)計(jì)如下圖所示:

2. 實(shí)際操作

裁切字體的工具很多,我們選用的工具是FontSubsetGUI,簡單夠用。大家只要準(zhǔn)備好一個包含你需要字符的txt文件和TTF原文件。運(yùn)行FontSubsetGUI,選好TTF文件和TXT文件的路徑,【Proceed】生成新TTF文件。

◆◆◆

效果 & 小結(jié)

精簡之后在UWA上復(fù)測,最終字體占用內(nèi)存從12MB降低到4.9MB,效果拔群。

通過上述的優(yōu)化操作,筆者得出結(jié)論如下:

針對不同字體的應(yīng)用場景,設(shè)計(jì)有效精簡的裁切字庫。

需要注意同一個字體資源在AssetBundle內(nèi)外可能都會有依賴,如果依賴不能避免,那么就要各自設(shè)計(jì)裁切字庫。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 翻譯:莫銘原文地址:AssetBundle usage patterns 本系列中的上一篇文章覆蓋了AssetBu...
    莫銘閱讀 5,686評論 1 12
  • 1、什么是AssetBundle AssetBundle 是Unity pro提供的一種用來存儲資源的文件格式,它...
    好怕怕閱讀 7,868評論 1 8
  • Unity3D 里有兩種動態(tài)加載機(jī)制:一個是Resources.Load,另外一個通過AssetBundle,其實(shí)...
    IongX閱讀 1,790評論 0 5
  • 0x00 前言 剛開始寫這篇文章的時(shí)候選了一個很土的題目。。。《Unity3D優(yōu)化全解析》。因?yàn)檫@是一篇臨時(shí)起意才...
    楊夏MX閱讀 2,401評論 2 11
  • 有位新朋友聽說海燕老師在帶領(lǐng)授證療愈師培訓(xùn),就問我海燕老師可以給人治病嗎? 答:所有的疾病都是心靈誤導(dǎo)的結(jié)果,醫(yī)病...
    龍花生花龍閱讀 596評論 0 1

友情鏈接更多精彩內(nèi)容