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;
        }
    }
}
相关文章
|
5月前
|
Android开发
Android经典实战之Textview文字设置不同颜色、下划线、加粗、超链接等效果
本文介绍了 `SpannableString` 在 Android 开发中的强大功能,包括如何在单个字符串中应用多种样式,如颜色、字体大小、风格等,并提供了详细代码示例,展示如何设置文本颜色、添加点击事件等,助你实现丰富文本效果。
382 3
|
8月前
技术好文:word页眉添加横线与删除横线
技术好文:word页眉添加横线与删除横线
41 0
|
9月前
|
SEO
如何像人类一样写HTML之标题、段落、换行、水平线与文本格式化标签
如何像人类一样写HTML之标题、段落、换行、水平线与文本格式化标签
105 2
如何像人类一样写HTML之标题、段落、换行、水平线与文本格式化标签
|
前端开发
css 实现标签内容多行截取(...)数字换行--英文--文字处理
css 实现标签内容多行截取(...)数字换行--英文--文字处理
[Emoji cheat sheet]写博客时会使用的Emoji可爱表情符号
[Emoji cheat sheet]写博客时会使用的Emoji可爱表情符号
|
前端开发
CSS之web字体使用并用该字体输出一首诗
我们需要提供一个或多个字体种类名称,浏览器会在列表中搜寻,直到找到它所运行的系统上可用的字体。
190 0
CSS之web字体使用并用该字体输出一首诗
Tkinter的Text控件如何给文本换行?
Tkinter的Text控件如何给文本换行?
Tkinter的Text控件如何给文本换行?
UI文字换行的三种方法
UI文字换行的三种方法
343 0