有时候我们会发现,Text组件在warp模式下,输入空格会导致换行,如图:
这是因为Text组件考虑到英文分词的习惯,我们都知道英文是按照空格分词的,所以为了避免出现同个单词被分开的情况,text对空格做了处理,故而出现上面这种情况。
解决方法:在Unicode编码中有另一种不带换行的空格,Unicode编码为\u00A0,将我们输入的空格替换成这种不换行空格即可,参考代码:
public static readonly string no_breaking_space = "\u00A0";
protected Text text;
// Use this for initialization
void Awake ()
{
text = this.GetComponent<Text>();
text.RegisterDirtyVerticesCallback(OnTextChange);
}
public void OnTextChange()
{
if (text.text.Contains(" "))
{
text.text = text.text.Replace(" ", no_breaking_space);
}
}

本文介绍了一个常见问题,即在使用Text组件时,输入空格导致换行的现象,解释了其背后的原因,并提供了一种解决方案,通过替换空格为不换行空格(Unicode编码u00A0),避免英文单词被拆分。
7260

被折叠的 条评论
为什么被折叠?



