引用:http://www.cnblogs.com/lancidie/p/6285569.html
在游戲開(kāi)發(fā)過(guò)程中,為了UI界面美觀和顯示效果一致性的考慮,大部分游戲都會(huì)使用動(dòng)態(tài)字體來(lái)表現(xiàn)文字雇初。尤其在這個(gè)看臉的時(shí)代,一種字體已經(jīng)無(wú)法滿足UI同學(xué)對(duì)美觀的需求闰歪,因此我們常常發(fā)現(xiàn)若干個(gè)小則兩三兆畜挨,大則十幾兆的字體文件,這些文件既占包體又占內(nèi)存许饿。因此阳欲,對(duì)字體的合理使用和優(yōu)化已經(jīng)成為項(xiàng)目中后期優(yōu)化必不可少的一個(gè)步驟。這里介紹《極無(wú)雙》團(tuán)隊(duì)對(duì)于字體裁切的思路和方法陋率。
◆◆◆
問(wèn)題描述
我們《極無(wú)雙》項(xiàng)目中使用了兩套字庫(kù)球化。黑體字體來(lái)顯示大部分既定文本、玩家昵稱瓦糟、對(duì)話等赊窥。隸書(shū)字體來(lái)特殊顯示一些標(biāo)題、武將姓名狸页、稱號(hào)锨能、重要對(duì)話等需要著重美化顯示的文字。
開(kāi)始優(yōu)化前芍耘,我們習(xí)慣性地在UWA平臺(tái)上(www.uwa4d.com)提測(cè)了一下址遇,在得到的報(bào)告中查看:內(nèi)存管理>> 具體資源信息 >> 字體資源 這一頁(yè)。如下圖所示斋竞,那時(shí)候從內(nèi)存曲線圖上看到字體資源占用內(nèi)存高達(dá)12MB倔约。
在此先贊一下UWA測(cè)評(píng)報(bào)告,其在定位問(wèn)題資源時(shí)真是高效坝初。報(bào)告很明確地指向了兩個(gè)可以優(yōu)化的方向:1)內(nèi)存占用浸剩;2)數(shù)量峰值。對(duì)于數(shù)量峰值為2表示每個(gè)字體各自有一份冗余資源鳄袍。
究其原因如下:
1)游戲早期登陸階段的場(chǎng)景绢要,以及里面用到的貼圖、字體等資源往往是不能用AssetBundle進(jìn)行加載的拗小。而這些貼圖和字體等資源如果又在AssetBundle里面有依賴重罪,就會(huì)在項(xiàng)目中存在相同的兩份;
2)內(nèi)存占用很好理解哀九,基本上字庫(kù)的磁盤容量等同于內(nèi)存占用剿配。
◆◆◆
優(yōu)化方案
1. 字庫(kù)裁切
既然我們接下來(lái)要做字體精簡(jiǎn)的工作,那么針對(duì)登陸階段/游戲階段的不同應(yīng)用場(chǎng)景阅束,可以設(shè)計(jì)不同的裁切字庫(kù)呼胚。最終我們的設(shè)計(jì)如下圖所示:
2. 實(shí)際操作
裁切字體的工具很多,我們選用的工具是FontSubsetGUI息裸,簡(jiǎn)單夠用蝇更。大家只要準(zhǔn)備好一個(gè)包含你需要字符的txt文件和TTF原文件沪编。運(yùn)行FontSubsetGUI,選好TTF文件和TXT文件的路徑簿寂,【Proceed】生成新TTF文件漾抬。
◆◆◆
效果 & 小結(jié)
精簡(jiǎn)之后在UWA上復(fù)測(cè),最終字體占用內(nèi)存從12MB降低到4.9MB常遂,效果拔群纳令。
通過(guò)上述的優(yōu)化操作,筆者得出結(jié)論如下:
針對(duì)不同字體的應(yīng)用場(chǎng)景克胳,設(shè)計(jì)有效精簡(jiǎn)的裁切字庫(kù)平绩。
需要注意同一個(gè)字體資源在AssetBundle內(nèi)外可能都會(huì)有依賴,如果依賴不能避免漠另,那么就要各自設(shè)計(jì)裁切字庫(kù)捏雌。