8.2D文本脚本控制

8.文本控件-脚本控制


8.1 知识点

脚本获取 TextMeshPro UI 组件

  1. 引用 TMP 命名空间
    要使用 TextMeshPro,首先需要引用命名空间 TMPPro

  2. TMP UI 组件名为 TextMeshProUGUI
    示例代码:

    using TMPro;
    using UnityEngine;
    
    public class Lesson08_UI文本控件_脚本控制 : MonoBehaviour
    {
        public TextMeshProUGUI textMeshProUGUI;
    }
    

TextMeshPro UI 组件常用属性

文本内容 (text)

textMeshProUGUI.text = "123123adfasdklf545454564654654646454564654132156465424";

字体 (font)

可以通过 textMeshProUGUI.font 获取或设置字体。

字体大小 (fontSize)

textMeshProUGUI.fontSize = 10;

颜色 (color)

textMeshProUGUI.color = Color.black;

对齐方式 (alignment)

textMeshProUGUI.alignment = TextAlignmentOptions.Center;

行间距 (lineSpacing)

textMeshProUGUI.lineSpacing = 50;

是否启用富文本 (richText)

textMeshProUGUI.richText = false;

TextMeshPro UI 组件常用方法

SetText 设置文本内容

支持富文本格式:

textMeshProUGUI.SetText("<color=blue>Hello, World!</color>");

Rebuild 强制重新构建文本网格

在文本内容或样式更改后调用:

textMeshProUGUI.Rebuild(UnityEngine.UI.CanvasUpdate.Prelayout);

CanvasUpdate 枚举:

  • Prelayout:布局前调用
  • Layout:布局时调用
  • PostLayout:布局后调用
  • PreRender:渲染前调用
  • LatePreRender:渲染后调用
  • MaxUpdateValue:最后调用

ForceMeshUpdate 强制更新文本网格

在运行时动态更改文本时使用:

textMeshProUGUI.ForceMeshUpdate();

Length 获取文本中字符数

print(textMeshProUGUI.text.Length);

UI 事件监听

如果想要为 TMP UI 添加交互事件,可以使用 UGUI 中的 EventTrigger 组件。

更多 API

可以参考官方文档了解更多 API 和用法: TextMeshProUGUI 文档


8.2 知识点代码

Lesson08_UI文本控件_脚本控制.cs

using TMPro;
using UnityEngine;
using UnityEngine.Serialization;

public class Lesson08_UI文本控件_脚本控制 : MonoBehaviour
{
    public TextMeshProUGUI textMeshProUGUI;

    void Start()
    {
        #region 知识点一 脚本获取TMP UI组件

        //1.需要引用TMP命名空间 TMPPro
        //2.TMP UI组件名为 TextMeshProUGUI

        #endregion

        #region 知识点二 TextMeshPro UI组件常用属性

        //1.文本内容
        //text;
        textMeshProUGUI.text = "123123adfasdklf545454564654654646454564654132156465424";

        //2.字体
        //font
        // textMeshProUGUI.font

        //3.字体大小
        //fontSize
        //textMeshProUGUI.fontSize = 10;

        //4.颜色
        //color
        textMeshProUGUI.color = Color.black;

        //5.对齐方式
        //alignment
        textMeshProUGUI.alignment = TextAlignmentOptions.Center;

        //6.行间距
        //lineSpacing
        textMeshProUGUI.lineSpacing = 50;
        
        //7.是否启用富文本
        //richText;
        textMeshProUGUI.richText = false;

        #endregion

        #region 知识点三 TextMeshPro UI组件常用方法

        //1.SetText 设置文本内容,支持富文本格式
        textMeshProUGUI.SetText("<color=blue>Hello, World!</color>");

        //2.Rebuild 强制重新构建文本网格,通常在文本内容或样式更改后使用
        //Rebuild(UnityEngine.UI.CanvasUpdate.XXX);
        //传入UnityEngine.UI.CanvasUpdate枚举如下
        //  Prelayout          布局前调用
        //  Layout             布局时调用
        //  PostLayout         布局后调用
        //  PreRender          渲染前调用
        //  LatePreRender      渲染后调用
        //  MaxUpdateValue     最后调用
        textMeshProUGUI.Rebuild(UnityEngine.UI.CanvasUpdate.Prelayout);

        //3.ForceMeshUpdate 强制更新文本网格,运行时动态更改文本时
        //textMeshProUGUI.ForceMeshUpdate();

        //4.Length 获取文本中字符数
        print(textMeshProUGUI.text.Length);

        #endregion

        #region 知识点四 UI事件监听

        //如果我们想要为TMP UI空间添加交互事件
        //可以UGUI中EventTrigger的方式

        #endregion

        #region 知识点五 更多API

        //https://docs.unity3d.com/Packages/com.unity.textmeshpro@4.0/api/TMPro.TextMeshProUGUI.html

        #endregion
    }


    public void OnClickTmpUI()
    {
        print("文本被点击了");
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏