UGUI中的文本添加链接下划线并跳转

哈哈,想了很久,试了好几种方法,最后还是自己写一下

先看代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class BtnTest : MonoBehaviour {
    public Button btnselect;//不用在意这是测试的委托代码
    public Text linkText;
    void Awake()
    {
        linkText = GameObject.Find("Canvas").transform.Find("Text").GetComponent<Text>();


    }
    void Start()
    {
        CreateLink(linkText);
        //给按钮绑定事件
        ButtonEvent.Get(btnselect.transform).clickObj += selectOnClick;
        // ButtonEvent.Get(textlint.transform).clickObj += onclick;
    }  


    void selectOnClick()
    {


        Debug.Log("Test is Sucess");
       
    }
  public  void onclick()
    {
        Application.OpenURL("www.baidu.com");
    }
    //创建下划线
  public void CreateLink(Text text)
  {
      if (text == null)
          return;


      //克隆Text,获得相同的属性  
      Text underline = Instantiate(text) as Text;
      underline.name = "Underline";


      underline.transform.SetParent(text.transform);
      RectTransform rt = underline.rectTransform;


      //设置下划线坐标和位置  
      rt.anchoredPosition3D = Vector3.zero;
      rt.offsetMax = Vector2.zero;
      rt.offsetMin = Vector2.zero;
      rt.anchorMax = Vector2.one;
      rt.anchorMin = Vector2.zero;


      underline.text = "_";
      float perlineWidth = underline.preferredWidth;      //单个下划线宽度  
      Debug.Log(perlineWidth);


      float width = text.preferredWidth;
      
      int lineCount = (int)Mathf.Round(width / perlineWidth);
   
      for (int i = 1; i < lineCount; i++)
      {
          underline.text += "_";
      }
  }  
}


不足之处请大家多多指教

在Unity使用UGUI给文字添加材质有几种常见方法。首先可以使用自定义材质来改变文字的外观。 方法一是创建一个新的材质,并将其应用于Text组件。首先,在项目资源创建一个新的材质。然后,选择Text组件,在Inspector视图找到"Material"属性,并将新创建的材质拖拽到该属性上。接下来,点击“编辑”按钮打开材质编辑器,在这里可以调整材质的颜色、纹理、反光等属性,以改变文字的外观。 方法二是使用TextMeshPro组件,该组件相对于UGUI的Text组件提供了更多的文本效果选项。首先,确保项目引入TextMeshPro包。然后,在TextMeshPro组件的Inspector视图,可以找到“Material Preset”属性。在这里可以选择现有的预设材质或自定义材质,并进行相应的编辑来改变文字的外观。 此外,还可以通过脚本控制文字的材质。可以通过获取Text组件的Material属性,然后修改其颜色、纹理等属性,实现给文字添加材质的效果。 需要注意的是,UGUI的文字材质是基于屏幕空间的,因此对于一些特殊效果需要使用shader进行处理。通过编写自定义shader,可以实现更复杂的文字效果,比如描边、发光等。 总之,在UGUI给文字添加材质主要有:使用自定义材质、使用TextMeshPro组件、通过脚本控制。通过这些方法可以实现各种各样的文字效果,满足项目的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值