UGUI Text自动换行的问题

UGUI Text组件在遇到半角空格时可能会导致不必要的换行,影响文本计算和显示。该问题源于Text组件按照拉丁西语的分词习惯处理换行。解决方案是使用不换行空格(Unicode编码u00A0)替代普通空格,避免中文内容被错误换行。
摘要由CSDN通过智能技术生成

Text自动换行会导致各种问题 比如计算文本长度等需求的时候 所以我们就需要修改这里

当字符串中带有半角空格,且半角空格后面的字符串内容超过文本剩余显示宽度时,Text组件会将后面的整段文字做换行。这个并不是bug,而是Text组件按照拉丁西语的分词习惯做line break,半角空格相当于分隔符,分隔空格前后的内容,并视之为单词。这种分词规则在西语中是正确的,但用在中文就水土不服了:整段的中文内容,粗暴地按半角空格分成了3部分,第一行空格后面的大段文字被判定为一个单词,剩余宽度无法显示,就被整个换到了第二行。

解决方案原理:我们平时用的Space键的空格,是换行空格(Breaking Space,Unicode编码为\u0020)空格前后都运行自动换行,与之对应的是不换行空格(Non-breaking space,Unicode编码为\u00A0)显示和换行空格一样,主要是禁止他自动换行

/// 标记不换行的空格(换行空格Unicode编码为/u0020,不换行的/u00A0)
    public static readonly string Non_breaking_space = "\u00A0"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值