untiy3dUGUI实现text文本下划线

简介: 测试.pngusing UnityEngine;using UnityEngine.UI;/// /// 链接下划线的制作/// public class UnderLine : MonoBehaviour{ ///...
img_9623c2ccc8cc7c750bbc134992b65ac4.png
测试.png
using UnityEngine;
using UnityEngine.UI;

/// <summary>
/// 链接下划线的制作
/// </summary>
public class UnderLine : MonoBehaviour
{
    /// 
    /// URL文本
    /// 
    public GameObject URL;
    /// 
    /// URL下划线文本
    /// 
    public GameObject URL_UderLine;
    /// 
    /// URL下划线Image
    /// 
    public GameObject Line_Image;
    /// 
    /// 实现下划线的方式类型
    /// 
    public int Type = 0;


    void Awake()
    {
        SetURLUnderLine(Type);
    }


    /// 
    /// 设定隐私协议文本的下划线
    /// type值为0表示使用“拼接Text:_”方式实现,有缺点
    /// type值为1表示使用“拉伸Image”方式实现,比较完美
    /// 
    private void SetURLUnderLine(int type)
    {
        Debug.Log("设定隐私协议文本的下划线,方式:" + type);

        switch (type)
        {
            case 0:
                //计算URL文本的宽度
                URL.GetComponent<Text>().text = "www.baidu.com";
                float width = URL.GetComponent<Text>().preferredWidth;

                //计算单个下划线宽度  
                Text underLineText = URL_UderLine.GetComponent<Text>();
                underLineText.text = "_";
                float perlineWidth = underLineText.preferredWidth;

                int lineCount = (int)Mathf.Round(width / perlineWidth);
                for (int i = 1; i < lineCount; i++)
                {
                    underLineText.text += "_";
                }
                break;
            case 1:
                //计算URL文本的宽度
                URL.GetComponent<Text>().text = "www.xmutalbaa.com";
                float width2 = URL.GetComponent<Text>().preferredWidth;

                Vector2 curSizeDelta = Line_Image.GetComponent<RectTransform>().sizeDelta;
                //  Line_Image.GetComponent<RectTransform>().pivot = new Vector2(0, 0.5f);
                Line_Image.GetComponent<RectTransform>().sizeDelta = new Vector2(width2, curSizeDelta.y);
                break;
        }
    }
}
相关文章
|
2月前
|
Android开发
Android经典实战之Textview文字设置不同颜色、下划线、加粗、超链接等效果
本文介绍了 `SpannableString` 在 Android 开发中的强大功能,包括如何在单个字符串中应用多种样式,如颜色、字体大小、风格等,并提供了详细代码示例,展示如何设置文本颜色、添加点击事件等,助你实现丰富文本效果。
261 3
|
流计算
[oeasy]python0085_[趣味拓展]字体样式_下划线_中划线_闪动效果_反相_取消效果
[oeasy]python0085_[趣味拓展]字体样式_下划线_中划线_闪动效果_反相_取消效果
91 0
|
流计算
[oeasy]python0070_ 字体样式_下划线_中划线_闪动效果_反相_取消效果
[oeasy]python0070_ 字体样式_下划线_中划线_闪动效果_反相_取消效果
104 0
[oeasy]python0070_ 字体样式_下划线_中划线_闪动效果_反相_取消效果
UI文字换行的三种方法
UI文字换行的三种方法
324 0
PyQt5 技巧篇-便于文字排版的等宽字体推荐:Source Code Pro的中文为英文两倍宽字体
PyQt5 技巧篇-便于文字排版的等宽字体推荐:Source Code Pro的中文为英文两倍宽字体
379 0
PyQt5 技巧篇-便于文字排版的等宽字体推荐:Source Code Pro的中文为英文两倍宽字体
|
C#
WPF文字描边的解决方法(二)——支持文字竖排和字符间距调整
原文:WPF文字描边的解决方法(二)——支持文字竖排和字符间距调整 自前天格式化文本效果出来后,今天又添加文本竖排和调整字符间距的功能。
1777 0
|
C#
【WPF】ListBox GridViewColumn Header 文字换行、文字多行显示
原文:【WPF】ListBox GridViewColumn Header 文字换行、文字多行显示 ListBox GridViewColumn Header 文字换行、文字多行显示,在Header中需要换行的地方写 &#x0a; 列内容绑定到ViewModel中自定义的属性即可。
1882 0
|
图形学
unity的ugui中文竖排
using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; [ExecuteInEditMode] public class VirticalText : Ba...
2917 0