Unity插件之TextMeshPro 富文本【转】

erick_book

2019.03.21 00:20 字数 2653 阅读 68评论 0喜欢 0

Unity插件之TextMeshPro 6.富文本

简介

通过富文本标签可以更改文本的外观和布局,实现多种样式的结合,使文本内容看起来更加丰富,还可以插入图素,制作图文混排,这些标签类似于HTML或XML,但语法又不是那么严格。此文章将重点介绍可以在TextMeshPro中使用的标签,虽然此文中列出了很多标签,但是在实际的实用中,经常使用的标签数量就只有几种而已。

声明

本文中的内容属于个人总结整理而来,个人水平有限,对于部分细节难免有理解错误及遗漏之处,如果您在阅读过程中有所发现,希望您能指正,同时文章中的部分内容也参考了其它大神的文章,如果文章中的内容侵犯了您的权益,表示非常歉意,请您指出,我将尽快修改。

如果您进行转载,请标明出处。
Unity插件之TextMeshPro 6.富文本(http://www.liyubin.com/articles/2019/03/19/1552973981025.html)

TextMeshPro富文本标签

标签看起来像是<tag>开始,如果需要关闭标签时使用</tag>,标签可以嵌套着使用,多个相同的标签使用时,往往是最后一个标签会生效,某些标签具有值和属性,类似于<tag = >、<tag attribute=vaue>,这些参数可以名称或者数值。数字是十进制或者十六进制,像素1px,百分比80%,字体单位1.2em,可以带有双引号也可以不带,有很多属性时最好使用。

推荐:虽然关闭标签不是必须的,还是推荐严格的添加关闭标签,对于排查错误会有不小的帮助

  • Text Alignment(文本对齐标签) -> align

    每个文本都有一个整体的对齐方式,但是可以使用标签覆盖掉,从而重新设置文本对方方式。此标记通常放在段落的开始,如果同一行上有多个对齐标签,则最后一个会生效,其它的会被忽略。

    <align="right">Right
    <align="center">Center
    <align="left">Left
    
    

    显示效果为:

    image
  • Colr(颜色标签) -> color alpha

    文本默认可以设置整体的颜色,也可以使用标签设置整个文本或者文本中某些部分为其它的颜色。目前提供了两个标签可以对颜色产生影响

    • color

      TextMeshPro内置了部分颜色值,可以通过名称直接使用其值,颜色值有:

      • 黑色-black
      • 蓝色-blue
      • 绿色-green
      • 橙色-orange
      • 紫色-purple
      • 红色-red
      • 白色-white
      • 黄色-yellow

      内置的颜色值有限,如果想设置其它的颜色可以直接使用十六进制进行设置如:#FFFFFF,如果想修改alpha值可以使用#FFFFFFFF,

      <color="red">Red <color=#005500>Dark Green <#0000FF>Blue <color=#FF000088>Semitransparent Red
      
      

      显示效果为:

      image
    • alpha

      如果只是需要修改文本的透明度,由可以只使用alpha标签,同样是使用十六进制表示的。

      <alpha=#FF>FF <alpha=#CC>CC <alpha=#AA>AA <alpha=#88>88<alpha=#66>66 <alpha=#44>44 <alpha=#22>22 <alpha=#00>00
      
      

      显示效果为:

      image

    PS:如果需要恢复默认的显示颜色,只要加上结束标签即可,即:</color>或者</alpha>,使用一次结束标签会将颜色设置为之前的颜色值

  • Bold and Italic(粗体与斜体) -> b i

    使用b标签可以将文本加粗

    使用i标签可以将文本变为斜体

    The <i>quick brown fox</i>
    jumps over <b> The lazy dog</b>.
    
    

    显示效果为:

    image
  • Character Spacing(字符间距) -> cspace

    通过使得cspace标签可以调整字符间距,无论是绝对的还是相对于原始字体的。可以以像素或者字体单位(em),设置正数将会加大字符间距,使用负数会减小字符间距,使用结束符可以让文本间距恢复到正常

    <cspace=1em>Spacing</cspace> is just as important as <cspace=-0.5em>timing.
    
    

    显示效果为:

    image
  • Font(字体标签) -> font

    可以font标签切换使用不同的字体,新字体会被一直使用,直到遇到新的字体标签或者关闭标签,字体与材质必须放到指定的目录中,同时必须提前做好相应的配置

    Would you like <font="Impact SDF">a different font?</font> or just <font="NotoSans" material="NotoSans Outline">a different material?
    
    

    显示效果为:

    image
  • Indentation(缩进标签) -> indent

    通过indent标签可以设置缩进,可以使用像素、百分比、字体单位为其值。在遇到新的缩进标签或者结束标签前,缩进标签的效果会一直存在,即使是跨行后效果依然会存在

    1\. <indent=15%>It is useful for things like bullet points.</indent>
    
    2\. <indent=15%>It is handy.
    
    

    显示效果为:

    image
  • Line Height(行高标签) -> line-height

    通过line-height可以在不用修改字体的情况下,设置高度可以使用行与行之间离的更近或者更远,其值可以是像素值、字体单位、百分比

    Line height at 100%
    <line-height=50%>Line height at 50%
    <line-height=100%>Rather cozy.
    <line-height=150%>Line height at 150%
    Such distance!
    
    

    显示效果为:

    image
  • Line-Indent(行缩进标签) -> line-indent

    一般用在每一行的开始位置,指示此行将缩进,此标签只影响手动换行,不影响使用文字转义换行

    <line-indent=15%>This is the first line of this text example.
    This is the second line of the same text.
    
    

    显示效果为:

    image
  • Text Link(超链接标签) -> link

    通过使用link标签可以为文本段添加链接数据,格式为<link="ID">,链接中的ID值应当是唯一的,这样才能在交互时才能知道是哪个链接发生了交互

    不需要给每个链接一个唯一ID,当链接到相同的数据多次时,可以使用同一个ID。link标签虽然允许与用户交互,但是它本身并不会改变文本的外观,一般情况下为了标识清楚,多数会设置样式带有下划线

  • Lowercase,Uppercase,and Smallcaps(大写、小写与小大写标签) -> lowercase uppercase smallcaps

    更改文本大小写样式。

    <lowercase>Alice and Bob watched TV.</lowercase>
    <uppercase>Alice and Bob watched TV.</uppercase>
    <smallcaps>Alice and Bob watched TV.</smallcaps>
    
    

    显示效果为:

    image
  • Margin(边距标签) -> margin

    使用margin标签可以调整文本的水平边距

    Our margins used to be very wide.
    <margin=5em>But those days are long gone.
    
    

    显示效果为:

    image
  • Mark(标记标签) -> mark

    使用mark标签可以在文本的上层添加一个覆盖,以突出显示这部分文本内容。由于mark标记是在文本上层的,所以一般情况下需要一定的透明度,才能看到底下的文本

    Text <mark=#ffff00aa>can be marked \nwith</mark> an overlay.
    
    

    显示效果为:

    image
  • MonoSpacing(??) -> mspace

    使用mspace可以所有的字符转换为等宽的字体

    Any font can become<mspace=2.75em> monospace, if you really want it.
    
    

    显示效果为:

    image
  • Noparse(禁用富文本标签) -> noparse

    某些时候并不希望文本被解释为标记文本,如果想禁用标记则可以使用noparse

    Use <noparse><b></noparse> for <b>bold</b> text.
    
    

    显示效果:

    image
  • Non-breaking Spaces(字词不破坏标签) -> nobr

    对单词往往希望字符保持在一起而不是被自动换行分隔,此时可以使用nobr标签

    You don't want <nobr>I M P O R T A N T</nobr> things to be broken up.
    
    

    显示效果为:

    image
  • Page Break(分页标签) -> page

    可以使用page标签在文本中插入分页符,将文本分成几个部分,使用些标签前提是文本框属性使用overflow同时设置为page模式

  • Horizontal Position(水平位置标签) -> pos

  • FontSize(字号标签) -> size

    使用size标签可以随时调整字体的大小,可以像素、字体单位或百分比,使用像素调整可以是绝对的也可以是相对的,例如:+1和-1

    <size=100%>Echo <size=80%>Echo <size=60%>Echo <size=40%>Echo<size=20%>Echo
    
    

    显示效果为:

    image
  • Horizontal Space(水平间距标签) -> space

    使用space标签可以在水平方向中添加一个偏移,就像是添加了多个空格一样。可以使用像素、字体单位或百分比设置

    Give me some <space=5em> space.
    
    

    显示效果为:

    image
  • Sprite(精灵标签) -> sprite

    使用sprite标签可以将图集中的图素添加到文本中,格式为按索引<sprite index=1>或者按名称<sprite name="spriteName">,此标签是不需要结束符,对于Sprite需要提交在配置中定义

    默认情况下精灵不受文本顶点颜色的影响,如果需要影响Sprite则需要添加tint=1属性,可以使用color属性为sprite添加其它颜色

    Sprites! <sprite=0> More sprites! <sprite index=3> And even more! <sprite name="Default Sprite Asset_4" color=#55FF55FF>
    
    

    显示效果为:

    image
  • Strikethrough and Underline(删除线与下划线标签) -> s u

    可以使用s标签添加删除线,使用u标签添加下划线

    The <s>quick brown</s> fox jumps over <u>the lazy dog</u>
    
    

    显示效果为:

    image
  • Style(样式标签) -> style

    可以通过style标签自定义样式,不过定义时需要指定样式的名称。

      <style="Title">Styles</style>
      You can create your own.
    
    

    显示效果为:

    image
  • Subscript and Superscript(上标与下标标签) -> sup sub

    使用sup可以添加上角标,使用sub可以添加下角标。角标具体显示位置可以在字体中定义

    We have 1m<sup>3</sup> of H<sub>2</sub>O.
    
    

    显示效果为:

    image
  • Vertical Offset(垂直偏移标签) -> voffset

    使用voffset可以使用文本基于baseline在垂直方向上产生偏移

    Up <voffset=1em>up <voffset=2em>UP</voffset> and <voffset=-0.5em>down</voffset> we go again.
    
    

    显示效果为:

    image
  • Text Width(文本宽度标签) -> width

    使用width标签,可以在文本内调整文本区域水平大小,但不能超出文本对象原始的大小

    I remember when we had lots of space for text.
    <width=60%>But those days are long gone.
    
    

    显示效果为:

    image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 193,968评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,682评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,254评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,074评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,964评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,055评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,484评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,170评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,433评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,512评论 2 308
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,296评论 1 325
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,184评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,545评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,150评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,437评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,630评论 2 335

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,345评论 1 45
  • 浏览器与服务器的基本概念 浏览器(安装在电脑里面的一个软件) 作用: ①将网页内容渲染呈现给用户查看。 ②让用户通...
    云还灬阅读 1,081评论 0 0
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,703评论 1 92
  • 本周存在问题梳理: 1.共读课程:学生阅读能力有别,学生读书进度不一样。在读书交流汇报课上反映出来。个别学生没有养...
    那些花儿17阅读 818评论 0 0
  • .圈层,这个词。我大约是在2016年10月头一次听到。那时的我,刚大学毕业。懵懵懂懂,进入了一家初创公司。有一次,...
    leafzl阅读 910评论 2 3