Unity新UI系统概述——Rich Text
来源:互联网 发布:java spring 日志记录 编辑:程序博客网 时间:2024/05/17 21:06
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);
- Unity新UI系统概述——Rich Text
- Unity新UI系统概述——Canvas
- Unity新UI系统概述——Basic Layout
- Unity新UI系统概述——Visual Components
- Unity新UI系统概述——Interaction Components
- Unity新UI系统概述——Animation Integration
- Unity新UI系统概述——Auto Layout
- Unity新UI系统概述——Auto Layout
- Unity新UI系统概述——Canvas
- Unity新UI系统
- Unity 5.0新UI系统——Canvas
- UNITY UGUI Rich Text 控件
- unity 4.6新UI系统学习笔记 如何通过脚本访问并修改Text组件
- DaikonForge——rich text label
- 【Unity】新的UI系统技巧
- Unity 新UI事件系统(EventSystem) Demo
- 【Unity】新的UI系统技巧
- 【Unity】新的UI系统技巧2
- 【项目工具】接触Maven
- C++ primer (第五版)课后题答案(八)
- hdu 5120 题解 Intersection
- 防止表单重复提交
- tomcat+apache+mod_proxy代理模式配置集群
- Unity新UI系统概述——Rich Text
- 使用android手机做鼠标
- eclipse Memory Analyzer进行内存泄漏分析三部曲
- Codeforces Round #275 (Div. 2)
- [iOS_Dev] UITableView 水平放置 自动循环滚动
- 屌炸天-css3水平导航下拉菜单
- 算法导论-第32章-字符串匹配:有限自动机方法(改进版本:预处理阶段复杂度为O(m*| ∑ |) )C++实现
- 第十四周项目一 二维数组折腾
- Sicily 1935 二叉树重建