制作ui时,会出先文本内容不定,但是文本后面一定距离有个按钮或者其他内容,此时我们就要文本在即将接触到其他内容时停止显示并显示省略号。
我们此时要面临几个问题:
1、如何判断输入的字符串在Text的ui上显示长度
2、如何截取字符串,使字符串长度在Text上刚好显示到我们想要的长度
3、如何保证截取的字符串完整。
4、如何把lua中有汉字、英文字母、数字的字符串(utf- 8格式), 拆分成一个一个的 汉字(不乱码)、字母、数字。
如果这些问题有不会的,下面会有解决办法:
问题一:如何判断输入的字符串在Text的ui上显示长度
方法一: 通过累加字符在ui中显示的长度来得到
以下方法为c#部分
1、font.RequestCharactersInTexture(text, fontSize, fontStyle); // font为Text组件的字体,text为要显示的字符串
2、font.GetCharacterInfo(text[i], out charInfo, fontSize, fontStyle); // 返回值为字符占用的长度, text[i]表示字符,charInfo 为创建出来的CharacterInfo,fontSize为字体大小,fontStyle为字体格式
3、 累加
public static int CalculateTextLengh(string text, Font font, int fontSize, FontStyle fontStyle)
{
font.RequestCharactersInTexture(text, fontSize, fontStyle);
<