【Unity筆記】TextMeshPro學(xué)習(xí)研究筆記

本文檔為22年在項(xiàng)目上開發(fā)UI的時(shí)候,在研究學(xué)習(xí)TMP過程中寫下的。如何創(chuàng)建動(dòng)態(tài)字體等功能網(wǎng)上已有其他大佬分享的文章,本文主要研究了TMP控件的描邊和投影功能,以及字體效果。


image.png

一、為什么要使用TMP

Unity 自帶的Text文字組件,在高分辨率模式下,文字清晰度不足。且如需要描邊和投影效果,則對(duì)應(yīng)的效果也非常糟糕。


image.png

image.png

從圖可見,文字模糊。描邊效果在文字折角處有丟失。
因此,在部分需要較高清晰度,或需要額外文字效果的情況下,可使用Text Mesh Pro組件來實(shí)現(xiàn)所需要的效果。

1.1 TMP優(yōu)點(diǎn)

1、 豐富的文本段落控制參數(shù):TextMesh Pro提供了對(duì)文本格式和布局的改進(jìn)控制,超過30個(gè)豐富的文本標(biāo)簽,包括支持上標(biāo),下標(biāo),下劃線,劃線,縮進(jìn),對(duì)齊,單步,行高,以及更多。支持多種字體和精靈、自定義樣式等功能
2、 支持TrueType和OpenType
3、 支持以材質(zhì)的方式給文字添加紋理效果

1.2 TMP缺點(diǎn)

1、 不能直接使用TTF字體,需要基于TTF字體創(chuàng)建專用字體文件資源。
2、 對(duì)中文支持不夠好,需要使用動(dòng)態(tài)字體模式生成字體文件。

二、創(chuàng)建字體TMP_Font Asset

2.1快速創(chuàng)建

在unity編輯器界面的project窗口,右鍵要使用 的TTF字體文件,在右鍵菜單中按順序選擇 Create>TextMeshPro>Font Asset,即可快捷創(chuàng)建對(duì)應(yīng)的字體資源。


image.png

image.png

image.png

生成的字體資源,icon為藍(lán)色的F字母。選中該資源,在Inspector窗口中可以看到unity定義的字體類型為TMP_Font Asset


image.png

image.png

2.2手動(dòng)創(chuàng)建

手動(dòng)創(chuàng)建字體資源,按照以下路徑進(jìn)入創(chuàng)建界面:Window>Text Mesh Pro>Font Asset Creator


image.png

image.png
image.png

image.png

image.png

image.png

image.png

image.png

2.2.1 Padding示例

下面分別展示Padding為0,5,10的SDF font 紋理,(SDF模式字體,越模糊效果越好)


image.png

image.png

image.png

2.2.2 Rander Mode效果示例

image.png

1、 SMOOTH、RASTER模式的字體,其投影不支持模糊效果。
2、 RASTER模式的字體鋸齒強(qiáng)烈。
3、 SDF各類型效果差異不大,基本使用SDFAA模式即可,除非該字體使用SDFAA會(huì)出現(xiàn)亂碼,則選擇SDF或SDF8進(jìn)行嘗試。

三、TMP_Font Asset結(jié)構(gòu)說明

image.png

TMP字體文件內(nèi)部包含一個(gè)材質(zhì)球資源、文字貼圖資源。

3.1 材質(zhì)球參數(shù)說明

3.1.1 Face

image.png
屬性 說明
Color 選擇字符表面的顏色和透明度。(該顏色將與頂點(diǎn)顏色Vertex Color相結(jié)合。)
Texture 選擇要應(yīng)用于字符表面的紋理。(顏色會(huì)影響紋理的顏色,如何應(yīng)用紋理中的映射選項(xiàng)控制到字符/文本對(duì)象編輯器面板。紋理選項(xiàng)不是在所有著色器上都可用。)
Softness 控制字體的柔軟度。
Dilate 增加或減少字符的大小。

紋理舉例:


image.png

3.1.2 Outline描邊

image.png
屬性 說明
Color 控制字符輪廓的顏色和透明度。
Texture 選擇要應(yīng)用于字符表面的紋理。(顏色會(huì)影響紋理的顏色,如何應(yīng)用紋理中的映射選項(xiàng)控制到字符/文本對(duì)象編輯器面板。紋理選項(xiàng)不是在所有著色器上都可用。)
Thickness 控制輪廓線的厚度。通常0.1 = 2像素描邊

描邊效果對(duì)比:


image.png

3.1.3 Underlay陰影

image.png
屬性 說明
Underlay Type 投影類型:None:無 Normal:常規(guī)投影 Inner:字體內(nèi)部
Color 投影顏色
Offset X 投影X軸偏移值
Offset Y 投影Y軸偏移值
Dilate 投影尺寸
Softness 投影模糊值

陰影效果:


image.png

四、多材質(zhì)球設(shè)置

每個(gè)字體文件內(nèi)部有一個(gè)材質(zhì)球,但每個(gè)材質(zhì)球只能關(guān)聯(lián)一個(gè)shader著色器,可能會(huì)遇到不同的文字組件使用相同的字體,但有些文字需要加投影,有些文字需要加描邊。而一個(gè)材質(zhì)球無法配置成在不同文字組件中開啟不同的參數(shù)配置。
但TMP字體可以配置多個(gè)材質(zhì)球,不同的材質(zhì)球設(shè)置不同的參數(shù), TMP組件的Inspector中的Material Preset切換材質(zhì)球以實(shí)現(xiàn),在不同的文字組件中出現(xiàn)描邊、投影效果。

4.1 創(chuàng)建多個(gè)材質(zhì)球

image.png

1、 在需要?jiǎng)?chuàng)建額外材質(zhì)球字體內(nèi)部,選中材質(zhì)球。
2、 按 Ctrl+D,即可生成一個(gè)額外材質(zhì)球。
3、 生成的額外材質(zhì)球可以在名字最后加效果名稱以進(jìn)行區(qū)分。比如:xxxx_outline、xxxx_shadow

4.2 切換材質(zhì)球

image.png

1、 在TMP組件中,點(diǎn)擊Material Preset,即可在下拉菜單中選擇其他的預(yù)設(shè)材質(zhì)球。

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

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

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