unity Text实现按文字内容自适应

1. 在不同的设备下运行(特别是文字很多时),可能同一段文字在Text上的表现不一样,这时候就要求Text需要按照文字内容进行自适应来适应不同的设备

  • 最简单的方法就是在Text上添加Content Size Fitter组件,然后进行修改Horizontal Fit和Vertcal Fit

但是这个组件也有一个问题,就是水平上你换行了才认为这一行结束,就会出现一行可能会很长,所以这里面要是需要放一大段的文字,特别是这段文字还是从word这些文本编辑器拷贝过来的,就会遇到这种问题,比如:


这个时候最好就是先将Text的宽度设置好,然后只需要将Vertical Fit设置成Preferred Size就可以了。

2. 边输入边改变Text大小

if (text.preferredWidth > maxWidth)
{
    text.rectTransform.sizeDelta = new Vector2(maxWidth, text.rectTransform.sizeDelta.y);
    text.GetComponent<ContentSizeFitter>().horizontalFit = ContentSizeFitter.FitMode.Unconstrained;
    text.GetComponent<ContentSizeFitter>().verticalFit = ContentSizeFitter.FitMode.PreferredSize;
}

猜你喜欢

转载自blog.csdn.net/star__119/article/details/80066826