[UGUI]获取单个字符的宽度和高度

    public Text mText;
    private TextGenerator mTextGenerator;
    private TextGenerationSettings mTgSettings;

    void Init()
    {
        mTextGenerator = mText.cachedTextGeneratorForLayout;
        mTgSettings = mText.GetGenerationSettings(Vector2.zero);
        Debug.Log(mTextGenerator.GetPreferredHeight("好",mTgSettings)/mText.pixelsPerUnit);
        Debug.Log(mTextGenerator.GetPreferredWidth("好", mTgSettings) / mText.pixelsPerUnit);
    }

用Unity的 TextGenerator获取字符的宽度和高度的时候遇到了一个坑
GetPreferredHeight的时候,高度总是不正确,而获取宽度的时候是正确的,就很纳闷了。
后来想想,觉得是给他一个字符串,他来计算高度,但是他怎么只能何时换行呢?,觉得问题就出现在换行这里
最后发现是text组件控制overflow的设置问题,垂直方向默认的是truncate,而水平方向默认的是wrap,问题就出现在这里,将水平方向的overflow改成 overflow就正确了。
text组件

猜你喜欢

转载自blog.csdn.net/wayway0554/article/details/80908704