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"