【Unity冷知识】Text组件空格导致换行

有时候我们会发现,Text组件在warp模式下,输入空格会导致换行,如图:

【Unity冷知识】Text组件空格导致换行_第1张图片这是因为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.RegisterDirtyVerticesCallback(OnTextChange);
    }

    public void OnTextChange()
    {
        if (text.text.Contains(" "))
        {
            text.text = text.text.Replace(" ", no_breaking_space);
        }
    }

 

你可能感兴趣的:(小技巧,unity)