Unity文本超长自动增加省略号

本文介绍了在Unity中处理文本超长并自动添加省略号的方法,包括判断字符串在UI上显示的长度、截取字符串、保证截取完整性和拆分UTF-8字符串。建议使用Font.RequestCharactersInTexture()计算文本长度,通过拆分字符确保截取的完整性和适配不同字符长度。同时,提供Lua代码示例解析UTF-8字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

制作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);

 

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值