游戏中文本中间的下划线
直接上代码
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;
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);
}