Unity获取Text组件文字宽度方法

首先在Text上添加一个ContentSizeFitter的组件,然后选择Horizontal Fit 属性为Preferred Size。(这个代表会根据实际宽度自适应)

可以看到这个时候RectTransform的Width属性变成灰色了。可以试着修改一下显示文本内容,Text的Width就会随着文本的长度自动变化。

这时候通过脚本获取RectTransform的sizeDelta.x就是此时文字的宽度。在刚刚加入到场景和修改文本内容的时候需要先调用ContentSizeFitter的SetLayoutHorizontal,这样宽度才会实时刷新,不然可能会出现获取宽度不正确的情况。

this.fitter.SetLayoutHorizontal();
RectTransform rect = this.text.GetComponent<RectTransform>();
Debug.Log("width is " + rect.sizeDelta.x);

需要注意的一点是,想要获取正确宽度的话,要保证这个Text节点,以及他的所有祖先节点的active属性均为true,否则得到的宽度会是0。

猜你喜欢

转载自blog.csdn.net/shaobing32/article/details/122970292
今日推荐