游戏中文本中间的下划线

游戏中文本中间的下划线

直接上代码

// An highlighted block
   public Text txt ;
    public Image img;

    public GameObject go;

    private string aimStr = "李ss";
    private string b = "@";
    void Start()
    {
        txt.text = "asdasdasd@李ss";

        float width2 = txt.preferredWidth;

        var indx = txt.text.IndexOf(aimStr);
        var ind2 = indx + aimStr.Length;
        int width3 = 0;
        for (int i = 0; i < indx; i++)
        {
            UnityEngine.CharacterInfo characterInfo;
             txt.font.GetCharacterInfo(txt.text[i], out characterInfo, txt.fontSize);
            width3 += characterInfo.advance;
        }
        int width4 = 0;

        for (int i = ind2; i < txt.text.Length; i++)
        {
            UnityEngine.CharacterInfo characterInfo;
            txt.font.GetCharacterInfo(txt.text[i], out characterInfo, txt.fontSize);
            width4 += characterInfo.advance;
        }

        Vector2 curSizeDelta = img.rectTransform.sizeDelta;

        var po = width3;//- halfW; txt.alignment == TextAnchor.UpperCenter
        img.rectTransform.pivot = new Vector2(0, 0.5f);

        img.rectTransform.anchoredPosition
            = new Vector3(po, img.transform.localPosition.y, 0);

        img.rectTransform.sizeDelta = new Vector2(width2 - width3-width4, curSizeDelta.y);
    
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值