UG4L9-1——文本控件
UG4L9-1——文本控件
本章代码关键字
1 | GTextField //文本控件类 |
文本控件
普通文本控件是FairyGUI的基础控件之一,它只负责文本的显示功能
不支持交互(鼠标触摸感应),不支持超链接和图文混排,不支持HTML语法
创建文本
直接在工具栏里选择字体,再点击舞台即可创建
文本属性相关
- 编辑文本内容时,可以点击右下角的来显示完整内容
- 若允许选中UBB语法,将可以预览效果
- 字体不建议选择系统字体,如果发布的目标平台没有这个字体将会出现显示问题
- 是发布时清除,即发布时会清除掉该文本显示的内容
由游戏引擎那边决定其显示的内容 - 一般,描边和投影不会同时使用
- 值得一提的是,在FairyGUI文本控件选择的字体是无法直接在Unity生效的,解决方法请看 ——> UG4L9-2——字体的处理
UBB语法
-
普通文本不支持img和url标签,富文本才支持
-
显示图片:[img]ui://包名/图片名[/img]
-
超链接:[url=网址]超链接[/url]
-
粗体:[b]123[/b]
-
斜体:[i]123[/i]
-
下划线:[u]123[/u]
-
颜色:
-
[color=#FFFFFF]123[/color]
-
[color=#FFFFFF,#000000]文字[/color]
两个颜色上下过渡
-
[color=#FFFFFF,#CCCCCC,#000000,#FFFF00]文字[/color]
四个颜色可以做左右过渡或者双方向过渡
-
-
字体:[font=字体名]字体[/font]
-
字体大小:[size=10]text[/size]
-
支持嵌套
文本模板
如果需要显示“我的元宝:100金200银”
文本为“我的元宝:{jin=100}金{yin=200}银”
这样我们就可以在代码中控制这两个变量进行文本变化 (之后详细讲解)
Unity中的使用
值得一提的是,在FairyGUI文本控件选择的字体是无法直接在Unity生效的,解决方法请看 ——> UG4L9-2——字体的处理
-
获取文本
1
GTextField gTextField = view.GetChild("txtInfo2").asTextField;
-
动态创建文本
1
2
3
4GTextField txt = new GTextField();
txt.SetSize(100, 100);
txt.text = "你好";
view.AddChild(txt); -
修改文本内容
1
gTextField.text = "你好Unity";
-
修改文本样式
有些样式,诸如对齐,单行显示等不需要调用
textFormat
属性就能修改
有些样式,诸如字号,颜色等需要调用textFormat
属性才能修改1
2
3
4
5
6
7
8
9//对齐方式
gTextField.align = AlignType.Left;
gTextField.verticalAlign = VertAlignType.Bottom;
//单行显示
gTextField.singleLine = true;
//字号
gTextField.textFormat.size = 50;
//字体颜色
gTextField.textFormat.color = Color.red; -
文本模板
修改模板内的文本有两种方法
-
方法一
执行
SetVar()
方法,传入要修改的变量和文字
再执行FlushVars()
方法,即可更改文字1
2
3
4GTextField gTextField = view.GetChild("txtInfo").asTextField;
gTextField.SetVar("jin", "500");
gTextField.SetVar("yin", "1000");
gTextField.FlushVars(); -
方法二
定义一个字典,以变量名为键,新的文本的内容为值
然后将这个字典赋值给templateVars
即可,如果将templateVars
赋值为null
,就会关闭模板功能1
2
3
4
5
6Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("jin", "10000");
dic.Add("yin", "1");
gTextField.templateVars = dic;
//关闭模板功能
gTextField.templateVars = null;
-