UGUI獲取文本的字符內容像素寬度 【轉】



在做文本框的時候,我們經常碰到需要計算字符輸入的長度,然后適當地做處理。這個時候不能直接了當地拿text.Length來用,原因有:

1、字符會因為fontSize的大小不同而有不同的寬度;

2、即使fontSize在你的場景里是同一的,字符也有英文字符和中文字符等的差別,它們的寬度也是相差極大的,比如字符I和字符N的寬度就很不一樣,而與任何一個中文字符又是不一樣的。

 

好在Unity也提供了這樣的方法給我們使用。如下例:

public Text text;

?public int allTextWidth;

foreach(var item in input.text)

{

CharacterInfo info = new CharacterInfo();

text.font.GetCharacterInfo(item, out info, 14);//14是字體的字號,可以從text里獲取。

allTextWidth += info.advance;//總的字符寬度

}

 

最后得到的就是總的字符寬度,以像素為單位。

比如你的文本框只允許顯示100像素長度的字符,如果超過這個大小的話,則以省略號...顯示,就可以拿這個值與100比較。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM