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;
        }
    }
}
相关文章
|
前端开发 JavaScript 容器
【实战】用CSS实现文本打字机效果
【实战】用CSS实现文本打字机效果
1392 0
【实战】用CSS实现文本打字机效果
|
5月前
|
前端开发
css 实用技巧 —— 文字和图标垂直居中对齐(四种方法)
css 实用技巧 —— 文字和图标垂直居中对齐(四种方法)
2322 1
|
6月前
ueditor1.5 百度富文本 编辑器增加字间距功能及按钮
ueditor1.5 百度富文本 编辑器增加字间距功能及按钮
82 0
|
7月前
|
自然语言处理 前端开发 容器
深入研究 CSS 文本换行
深入研究 CSS 文本换行
155 0
|
流计算
[oeasy]python0085_[趣味拓展]字体样式_下划线_中划线_闪动效果_反相_取消效果
[oeasy]python0085_[趣味拓展]字体样式_下划线_中划线_闪动效果_反相_取消效果
92 0
|
前端开发
CSS之web字体使用并用该字体输出一首诗
我们需要提供一个或多个字体种类名称,浏览器会在列表中搜寻,直到找到它所运行的系统上可用的字体。
177 0
CSS之web字体使用并用该字体输出一首诗
sketch 如何规范的设置自己的字体样式库( Text styles )
sketch 如何规范的设置自己的字体样式库( Text styles )
sketch 如何规范的设置自己的字体样式库( Text styles )
|
IDE 开发工具
emmet编辑a*5或 span*5,生成多个行内标签时,不会自动换行的解决方案
小伙伴们,好久不见,不知道你们有没有这个困扰呢?今天折腾了好一会终于解决了,分享给大家🦄
504 0
emmet编辑a*5或 span*5,生成多个行内标签时,不会自动换行的解决方案
|
图形学
unity的ugui中文竖排
using UnityEngine; using UnityEngine.UI; using System.Collections.Generic; [ExecuteInEditMode] public class VirticalText : Ba...
2918 0