Unity TextMeshPro實(shí)現(xiàn)富文本超鏈接默認(rèn)字體追加字體
實(shí)踐過(guò)程
??富文本
芝麻粒兒提醒:標(biāo)簽是成對(duì)出現(xiàn)的就不要省略,有的不是成對(duì)的在修改了后就恢復(fù)過(guò)來(lái),如下方alpha示例,否則多了很容易出現(xiàn)意外的錯(cuò)誤效果。
芝麻粒兒提醒:
<b>粗體標(biāo)簽</b> <i>斜體標(biāo)簽</i> <u>下劃線標(biāo)簽</u> <s>刪除線標(biāo)簽</s> <sup>上標(biāo)標(biāo)簽</sup>前面后面上標(biāo)簽 5<sup>。</sup>C <sub>下標(biāo)標(biāo)簽,如:</sub>H<sub>2</sub>O <size=48>文字大小</size> <size=55%>文字大小-百分比</size> <size=+18>默認(rèn)大小上再增加文字大小</size> <size=-18>默認(rèn)大小上減去指定文字大小</size> <pos=40>距離左側(cè)的縮進(jìn),可以實(shí)現(xiàn)類(lèi)似首行縮進(jìn)的,文字大小不同這個(gè)值縮進(jìn)程度不同 <color=yellow>顏色標(biāo)簽寫(xiě)法一</color> <#00ff00>顏色標(biāo)簽寫(xiě)法二</color> <alpha=#FF>正 <alpha=#CC>在 <alpha=#AA>進(jìn) <alpha=#88>行 <alpha=#66>透 <alpha=#44>明度 <alpha=#22>的 <alpha=#00>變化 <alpha=#FF> <align="left">左對(duì)齊<sprite=2>也是默認(rèn)對(duì)齊</align> <align="center">居中對(duì)齊<sprite=2></align> <align="right">右對(duì)齊<sprite=5></align> 1. <indent=15%>縮進(jìn)15%. 多行有效</indent> 2. <indent=100>縮進(jìn)100像素 多行有效</indent> 3. <indent=5em>縮進(jìn)5em 多行有效</indent> 4. <indent=15%>縮進(jìn)15%. <cspace=1em>1em字體單位間距</cspace> <cspace=10>10像素字體單位間距</cspace> <cspace=-4>-10像素縮小間距 使用 <font="LiberationSans SDF">different font?</font>或者使用<font="YouYuan SDF" material="YouYuan SDF - Outline">不同材質(zhì)? <line-height=50%>50%行間距 行間距</line-height> <line-height=100%>100%行間距 正常</line-height> <line-height=150%> 150% 行間距</line-height> <line-indent=15%>行縮進(jìn)只影響單行顯示,多行不受影響</line-indent> <lowercase>ABCDEFG</lowercase> <uppercase>ABCDEFG</uppercase> <smallcaps>AbcdeFg</smallcaps> 設(shè)置 <mark=#ff0000aa>標(biāo)注</mark> 前面是標(biāo)注,需要透明度 <noparse><b></noparse> 取消標(biāo)簽的作用,如b加粗沒(méi)效果 <style=H1>內(nèi)置</style><style=H2>的</style><style=C1>樣式名</style> <width=50%>設(shè)定高可用寬度,超出后即使沒(méi)換行會(huì)自動(dòng)換行的</width> <link="https://zhima.blog.csdn.net/">點(diǎn)擊這 網(wǎng)站 倆字 跳轉(zhuǎn),需要額外腳本</link>

??超鏈接腳本
[RequireComponent(typeof(TMP_Text))]
public class LinkOpener : MonoBehaviour, IPointerClickHandler
{
public void OnPointerClick(PointerEventData eventData)
{
TMP_Text pTextMeshPro = GetComponent<TMP_Text>();
int linkIndex =
TMP_TextUtilities.FindIntersectingLink(pTextMeshPro, eventData.position,
null); // If you are not in a Canvas using Screen Overlay, put your camera instead of null
if (linkIndex != -1)
{
// was a link clicked?
TMP_LinkInfo linkInfo = pTextMeshPro.textInfo.linkInfo[linkIndex];
Application.OpenURL(linkInfo.GetLinkID());
}
}
}
??3D中使用
除了UI使用TextPro外,3D場(chǎng)景中也能用。創(chuàng)建個(gè)空物體,我們添加組件TextMeshPro -Text組件,注意不是TextMeshPro -Text (UI)組件。特別注意不掛UI。


??設(shè)置默認(rèn)字體
如果你沒(méi)有進(jìn)經(jīng)過(guò)這一步,你每創(chuàng)建一個(gè)TextMesh組件,里面的字體默認(rèn)還是系統(tǒng)的,還得我們一個(gè)個(gè)找到自己的字體修改設(shè)置。有兩種方式修改全局默認(rèn),這樣每創(chuàng)建TextMesh都是我們自己的字體:
方式一:Edit > Project Settings > TextMesh Pro Settings修改該字形。

方式二:找到TextMeshPro的設(shè)置文件,默認(rèn)就在(你的項(xiàng)目)/Assets/TextMesh Pro/Resources中一個(gè)叫TMP Settings的文件。修改TMP Settings中的Default Font Asset即可。

??追加額外字符
如果你一開(kāi)始就不是直接生成的全部文字的字體庫(kù),隨著項(xiàng)目的更新總會(huì)遇見(jiàn)某些字符你沒(méi)有提前設(shè)置如字體資源庫(kù)中,這時(shí)候就有兩種方案:
重新生成一個(gè)全的,直接替換掉你原來(lái)的。
找到TMP Settings或者直接找到那個(gè)SDF字體文件,會(huì)發(fā)現(xiàn)有個(gè)Fallback Font Assets的屬性,點(diǎn)擊加號(hào)就可以繼續(xù)添加額外的SDF字體庫(kù)資源文件。
以上就是Unity TextMeshPro實(shí)現(xiàn)富文本超鏈接默認(rèn)字體追加字體的詳細(xì)內(nèi)容,更多關(guān)于Unity TextMeshPro富文本字體的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Unity的IPreprocessBuildWithReport實(shí)用案例深入解析
- Unity的BuildPlayerProcessor實(shí)用案例深入解析
- Unity中的RegisterPlugins實(shí)用案例深入解析
- Unity的IPostprocessBuild實(shí)用案例深入解析
- Unity的IPreprocessBuild實(shí)用案例深入解析
- Unity的IFilterBuildAssemblies實(shí)用案例深入解析
- 一文詳解Unity3D?AudioSource組件使用示例
- Unity InputFiled TMP屬性和各種監(jiān)聽(tīng)示例詳解
- Unity中的InitializeOnLoad特性實(shí)踐深入解析
相關(guān)文章
C#實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)圖書(shū)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
C#實(shí)現(xiàn)將PPT轉(zhuǎn)換成HTML的方法
這篇文章主要介紹了C#實(shí)現(xiàn)將PPT轉(zhuǎn)換成HTML的方法,非常實(shí)用的功能,需要的朋友可以參考下2014-08-08
C# Csv實(shí)現(xiàn)基本的讀寫(xiě)和轉(zhuǎn)換DataTable
本文主要介紹了C# Csv實(shí)現(xiàn)基本的讀寫(xiě)和轉(zhuǎn)換DataTable,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02
Qt讀取本地系統(tǒng)時(shí)間的幾種方式小結(jié)
這篇文章主要介紹了Qt讀取本地系統(tǒng)時(shí)間的幾種方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03
Unity實(shí)現(xiàn)卡片循環(huán)滾動(dòng)效果的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Unity實(shí)現(xiàn)卡片循環(huán)滾動(dòng)的效果,文中的實(shí)現(xiàn)步驟講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下2022-12-12
C#線程 BeginInvoke和EndInvoke使用方法
本文開(kāi)始C#線程系列講座之一,即BeginInvoke和EndInvoke的使用方法,需要的朋友可以參考下2013-05-05
C#使用dynamic一行代碼實(shí)現(xiàn)反射操作
dynamic的出現(xiàn)讓C#具有了弱語(yǔ)言類(lèi)型的特性。編譯器在編譯的時(shí)候不再對(duì)類(lèi)型進(jìn)行檢查,編譯時(shí)默認(rèn)dynamic對(duì)象支持你想要的任何特性,這篇文章主要介紹了C#用dynamic一行代碼實(shí)現(xiàn)反射操作,需要的朋友可以參考下2023-04-04

