UG4L9-3——富文本控件

本章代码关键字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
GRichTextField                                    //富文本控件类
gObject.asRichTextField //将元件类对象as成富文本控件类对象的属性
new GRichTextField() //动态创建富文本控件
gRichTextField.onClick //富文本控件点击相关属性
gRichTextField.onClick.Add() //添加监听富文本控件被点击的方法
gRichTextField.onClick.Remove() //移除监听富文本控件被点击的方法
gRichTextField.onClick.Clear() //清空监听富文本控件被点击的方法
gRichTextField.onClickLink //富文本控件的超链接被点击相关属性
gRichTextField.onClickLink.Add() //添加监听富文本控件的超链接被点击的方法
HtmlParseOptions //超链接样式设置选项类
HtmlParseOptions.DefaultLinkUnderline //超链接是否默认显示下划线,应当在显示文字控件前设置
HtmlParseOptions.DefaultLinkColor //超链接的默认文字颜色,应当在显示文字控件前设置
HtmlParseOptions.DefaultLinkBgColor //超链接的默认文字背景色,应当在显示文字控件前设置
HtmlParseOptions.DefaultLinkHoverBgColor //当鼠标指针移到超链接的文字上时的默认背景色,应当在显示文字控件前设置
gRichTextField.richTextField.htmlParseOptions //获取该富文本控件的超链接样式设置选项
htmlParseOptions.linkUnderline //该富文本控件的超链接是否显示下划线
htmlParseOptions.linkColor //该富文本控件的超链接的文字颜色
htmlParseOptions.linkBgColor //该富文本控件的超链接的文字背景色

富文本控件

富文本和普通文本控件基本一致,区别是:

  • 富文本支持交互(鼠标/触摸)
  • 富文本支持超链接和图文混排
  • 富文本支持HTML语法

创建富文本

image

富文本属性相关

富文本属性和文本一模一样,区别就是:

  1. UBB语法支持超链接和图片(图文混排)
  2. 支持HTML语法进行文本编辑

HTML语法

  • 快速入门教程:https://www.runoob.com/html/html-tutorial.html

  • 常用语法

    • 图片:

      1
      2
      3
      <img src='ui://包名/图片名/'>
      <img src='ui://包名/图片名' width='20' height='20'/>
      <img src='ui://包名/图片名' width='50%' height='50%'/>
    • 超链接:

      1
      <a href='xxx'>link text</a>

Unity中的使用

使用前不要忘记设置字体!

  1. 获取富文本

    1
    GRichTextField gRichTextField = view.GetChild("richTxt1").asRichTextField;
  2. 动态创建富文本

    1
    2
    3
    4
    5
    GRichTextField richTxt2 = new GRichTextField();
    richTxt2.SetSize(100, 100);
    richTxt2.SetPosition(20, 20, 0);
    richTxt2.text = "<a herf='www.baidu.com'>超链接3</a>";
    view.AddChild(richTxt2);
  3. 其他API和文本模板和文本一模一样

  4. 点击相关

    1
    2
    3
    4
    5
    6
    7
    8
    9
    gRichTextField.onClick.Add(() =>
    {
    print("点击1");
    });
    gRichTextField.onClick.Add(Click);

    gRichTextField.onClick.Remove(Click);

    gRichTextField.onClick.Clear();
  5. 超链接点击相关

    1
    2
    3
    4
    5
    gRichTextField.onClickLink.Add((obj) =>
    {
    print(obj.data.ToString());
    //这个数据不见得要是链接,我们可以自己定义规则 判断内容去执行不同的逻辑
    });
  6. HTML超链接样式

    注意:全局设置应该在创建富文本之前调用,也就是显示文本之前就该设置完毕

    • 设置整个项目中所有链接是否带下划线

      1
      HtmlParseOptions.DefaultLinkUnderline = true;
    • 设置超级链接的颜色

      1
      2
      3
      HtmlParseOptions.DefaultLinkColor = Color.red;              //超链接的文字颜色
      HtmlParseOptions.DefaultLinkBgColor = Color.green; //超链接的文字背景色
      HtmlParseOptions.DefaultLinkHoverBgColor = Color.yellow; //当鼠标指针移到超链接的文字上时背景色
    • 单个富文本超链接样式

      1
      2
      3
      4
      5
      //单个富文本设置
      HtmlParseOptions options = gRichTextField.richTextField.htmlParseOptions;
      options.linkUnderline = false;
      options.linkColor = Color.green;
      options.linkBgColor = Color.red;