Unity新UI系统概述——Rich Text

UI元素和text meshes的文本可以混合使用多种字体风格和大小。新的和旧的UI系统都支持富文本。Text,GUIStyle和TextMesh类都有用于指示Unity查询文本内部标记标签的富文本设置。Debug.Log函数也可以使用这些标记标签来加强代码中的错误报告。这些标签不会被显示,只是用来指示文本不同的风格。

标记格式

标记系统受到HTML的启发,但不会严格兼容标准的HTML。基本的方法是将文本包含在一对相匹配的标签内:

We are <b>not</b> amused

例子中,标签就是在尖括号里的文本内容。标签内部的文本表示它的名字(这个例子里就是b)。注意段末尾的标签有和开始这个标签相同的名字,只是多了一个斜线。这些标签不会直接显示给用户,只是被用来解释它们包含的文本的风格。上面例子用的b标签会对单词"not"使用加粗效果,所以在屏幕上看到的文本是这样的

We are not amused

一个被标记的文本段(包括里面的标签)被称为一个element(元素)

嵌套的元素

为了对一个文本段使用多种风格,可以在一个元素中嵌套另外一个元素 

We are <b><i>definitely not</i></b>amused

标签i表示斜体风格,所以最后屏幕上看到的是这样的

We are definitely not amused

注意结束标签的顺序,和开始标签是相反的。这样做的原因是当你考虑内部标签的时候不需要去关注整个最外层元素的文本。

We are <b>absolutely<i>definitely</i> not </b> amused

会显示为

We are absolutely definitely not amused

标签参数

有些标签对文本含有简单的“全有或全无”效果,而其它的也许允许变化。例如color标签需要知道使用了什么颜色。参数像这样通过使用参数添加到标签上:

We are<color=green>green</color> with envy

注意,后面的标签不能包含参数值。值可以被引号括起来,也不可以不要。

支持的标签

下面列出了Unity支持的所有风格标签。

标签

描述

例子

备注

b

用粗体渲染文本

We are <b>not</b> amused

 

i

用斜体渲染文本

We are <i>usually</i> not amused

 

size

根据给定的像素值设置文本的大小

We are <size=50>largely</size> unaffected

虽然Debug.Log函数也可以用这个标签,但是在窗口栏上你会看到行距并且如果size设太大了控制台窗口看上去会比较怪

color

根据制定的颜色值设置文本的颜色。颜色可以用传统的HTML格式指定。#rrggbbaa...这里的字母是用一对16进制的数字表示的红色、绿色、蓝色和alpha值(半透明)分量。例如,完全不透明的青色这样指定:

<color=#00ffffff>...

也可以使用颜色的名字来指定。这样比较容易理解,而且很自然,颜色的范围是被限定的而且都是完全不透明的 。

<color=cyan>..所有可用的颜色名字请参考官方文档。

 

material(材质)

这个只对使用指定参数的材质进行渲染文本的text mesh有用。值是text mesh列在观察窗口中的材质数组的索引。

We are<material=2>texturally</material> amused

quad

这个只对text mesh在文本内渲染一张图片时有用。它使用这些参数:用于图像的材质、图片的像素高度和四个能表示图片矩形区域的数值。不同于其它标签,quad不会包含文本内容,因此不会有结束标签——斜划线放在初始标签的末尾,表示它是“自封闭”的。

<quad material=1 size=20 x=0.1 y=0.1 width=0.5 height=0.5/>

这个例子使用位于renderer组件材质列表中的材质并且将图片的高度设为20。图片的矩形区域由x,y,width和height的数值来决定,这些值都是未被缩放的图片的宽和高的比例。

Editor GUI

Editor GUI系统里的富文本默认是不可用的,但是可以用自定义GUIStyle来显式的启用。将richText属性设为true并将这个style传给GUI函数:

GUIStyle style = new GUIStyle();
style.richText = true;
GUILayout.Label("<size=30>Some<color=yellow>RICH</color> text</size>", style);


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值