Unity

Unity根据Text内容设置宽高

2019-03-31  本文已影响0人  无糖Kel

版权说明:本文为博主原创文章,转载需注明出处

环境 Unity 2018.3.9f1


  开发时免不了动态加载文字,如果只是单独在某个位置显示文字,我们只要根据布局将Text对象的宽高设置为极限值或者设置溢出就可以了。但是在某些情况下这样就不理想了。

  例如,此时有个滚动列表(假设有),里面有个Text,内容为这是一堆文字,具体多少我也不知道,反正就是一堆文字,由于设置溢出会造成文字的重叠,所以不能设置溢出。出现的情况就会是这样:

Text.png
  所以必须在动态加载文字的时候手动设置一下Text对象的宽高。这里有两个重要的属性Text.preferredWidthText.preferredHeight,分别表示在有足够的空间下,Text被分配的宽度和高度。这里我们是固定宽度,所以只需要Text.preferredHeight属性。上代码:
using UnityEngine;
using UnityEngine.UI;

public class Test : MonoBehaviour
{
    public Text Text;
    
    void Start()
    {
        RectTransform rect = Text.GetComponent<RectTransform>();
        // 获取Text的Size
        Vector2 v2 = rect.rect.size;

        Text.text = "这是一堆文字,具体多少我也不知道,反正就是一堆文字";

        // width保持不变
        rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, v2.x);
        // 动态设置height
        rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, Text.preferredHeight);
    }
}

  效果图:


Text.png

  以上

上一篇下一篇

猜你喜欢

热点阅读