UGUI获取文本的字符内容像素宽度 【转】
2024-10-21 06:00:50
在做文本框的时候,我们经常碰到需要计算字符输入的长度,然后适当地做处理。这个时候不能直接了当地拿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比较。
最新文章
- poj1200-Crazy Search(hash入门经典)
- Step by step Install a Local Report Server and Remote Report Server Database
- notepad++快捷键大全
- 如何理解meta标签
- 【iOS】Quartz2D截屏
- [转]JAVA程序员一定知道的优秀第三方库(2016版)
- python3 pyqt5 和eric5配置教程
- SQL Server 2005、SQL Server 2008版本比较
- 開始学习swift开发
- [Javascript] The JSON.stringify API
- OSCHina技术导向:Java全文搜索框架Lucene
- 防盗链之URL参数签名
- python读写文件\r\n问题
- ionic报错: Failed to load resource
- day50 django第一天 自定义框架
- java代码------charAt()的用法
- Fetch的使用; Yarn命令集; NVM的管理;VueCLi3的使用;
- Underground Lab CodeForces - 782E (欧拉序)
- video事件
- jquery序列化表单以及回调函数的使用