有时候我们会发现,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);
}
}