Unity 之 UGUI Text文本组件详解

本文详细介绍了Unity中的UGUI Text组件,包括属性面板、代码操作、使用实例及相关扩展。通过实例解决了空格换行问题,展示了如何实现逐字显示功能,并推荐了如文本渐变、竖排显示等进阶技巧。此外,还讨论了轮廓、阴影和UV1位置等扩展功能的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文本_控件向用户显示非交互式文本。此控件可用于为其他 GUI 控件提供标题或标签,或显示说明或其他文本。

1,属性面板

  • Inspector属性面板:111
属性名称解释说明
Text用于想要显示的文本 ;
Font字体 ;
Font Style文本样式 (斜体 , 加粗等) ;
Font Size字体大小 ;
Line Spacing文本行之间的间距 ;
Rich Text富文本 ;(<color = #ffffff > 白色 </color> )1
Alignment文本的水平和垂直的对齐方式 ;
Alignment By Geometry使用字形几何形状的范围(而不是字形指标)执行水平对齐。
Horizontal Overflow水平溢出方式 ,用于处理文本太宽而无法放入矩形内的情况的方法。
Vertical Overflow垂直溢出方式 ;
Best Fit根据矩形大小来自动调整文本大小 ;(忽略字体大小)
Color文本颜色 ;
Material渲染文本的材质 ;
Raycast Target是否可以被射线检测到 ;.

2,代码操作

上面Inspector属性均可在代码中进行设置:

	public void SetTextStyle()
    {
        #region ------ 【Charater】 ------
        //字体大小
        TiShi.fontSize = 15;
        //文字格式正常,斜体,粗斜,加粗
        TiShi.fontStyle = FontStyle.Normal;//.Italic.BoldAndItalic.Bold;
        //行间距
        TiShi.lineSpacing = 1.2f;
        //是否支持富文本
        TiShi.supportRichText = true;

        #endregion

        #region ------ 【Prargraph】 ------

        //对齐方式 各种TextAnchor枚举对齐
        TiShi.alignment = TextAnchor.LowerCenter;
        //使用字形几何范围来执行水平对齐,而不是使用音质度量。
        TiShi.alignByGeometry = false;

        //水平竖直模式 ==》 Overflow:溢出模式【不考虑文本的width或者height的限制,显示全部文本内容】
        //Wrap 或者 Truncate 在文本width或者height区域内显示,超出部分被隐藏【包括字体大小超出】
        TiShi.horizontalOverflow = HorizontalWrapMode.Overflow;
        TiShi.verticalOverflow = VerticalWrapMode.Truncate;

        //应该允许文本自动调整大小。
        TiShi.resizeTextForBestFit = true;
        //设置 BestFit 为True后
        //当前文本区域显示不开后,内容会自动缩小字号;  【忽略原字体大小】
        TiShi.resizeTextMinSize = 15;
        TiShi.resizeTextMaxSize = 30;

        #endregion

        //文本颜色 【有渐变色时,此属性不起作用】
        TiShi.color = new Color32(0, 0, 0, 0);

        //文本材质 path:是Resources下面材质目录
        TiShi.material = Resources.Load("path", typeof(Material)) as Material;

        //是否进行射线检测
        TiShi.raycastTarget = false;
    }


3,使用实例

1), 空格换行问题

在实际使用过程中遇到这样一个问题,显示文字需要空格来标识分隔显示,而空格后面那句话太长了,导致一行显示不开,控件就会默认换行显示如下图:(这样显示起来难免会不美观)
修改前:
修改前
修改后:
修改后
修改逻辑使用"\u3000"2 字符来替换空格;(直接在组件上输入时,将输入法调成全角然后输入空格即可实现)

using UnityEngine;
using UnityEngine.UI;

public class SetTextSpace : MonoBehaviour {

	private Text mText;
	void Start () {
		//获取Text组件
		mText = this.GetComponent<Text>();
		//您要显示文本内容
		string temp_content = "这是一个测试遇到空格 后面显示不开自动换行的问题处理 Czhenya";
		//处理空格
		temp_content = temp_content.Replace(" ", "\u3000");
		//或者字符串直接这样写
		//string temp_content = "这是一个测试遇到空格\u3000后面显示不开自动换行的问题处理\u3000Czhenya";
		//设置Text文字
		mText.text = temp_content;
	}
}

2), 逐字显示功能

逐字
这是一个结合DoTween插件写的一段逻辑:

using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;

public class ZhuZiText : MonoBehaviour {

	private Text mText;
	void Start () {
		//获取Text组件
		mText = this.GetComponent<Text>();
		//您要显示文本内容
		string temp_content = "这是一个测试遇到空格后面显示不开自动换行的问题处理Czhenya";
		
		mText.DOText(temp_content, 6);

		//带回调的方式
		//mText.DOText(temp_content, 6).OnComplete(()=> {
		//	Debug.Log("逐字显示完成的回调");
		//});

		//添加Ease枚举中设定的缓动动画
		//mText.DOText(temp_content, 6).SetEase(Ease.InBack).OnComplete(() => {
		//	Debug.Log("逐字显示完成的回调");
		//});
	}
}

3), 相关功能推荐

Text 文本渐变;
Text 文本竖排显示文字;
Text 增加下划线;
Unity实现Text逐字显示;


4,相关扩展

1), 轮廓 (Outline)

属性功能
Effect Color轮廓的颜色。
Effect Distance轮廓效果在水平和垂直方向的距离。
Use Graphic Alpha将图形颜色叠加到效果颜色上。

online

2), 阴影 (Shadow)

属性功能
Effect Color阴影的颜色。。
Effect Distance阴影的偏移(表示为矢量)。
Use Graphic Alpha将图形颜色叠加到效果颜色上。
阴影

结合渐变色的使用示例:

带有OutLine的效果:
带有outline

再加上Shadow效果:
shadow

3), UV1 位置 (Position as UV1)

111

此组件为文本和图像图形添加简单的 UV1 位置效果。

把Canvas空间下的顶点坐标设置到UV1中,用于在Text和Image这样的图形组件中实现一些特效(特效要自定义shader实现)



系列文章目录:


  1. 富文本相关官方文档↩︎

  2. \u3000是全角空格的16进制Unicode编码。 ↩︎

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈言必行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值