美文网首页Unity
Unity根据Text内容设置宽高

Unity根据Text内容设置宽高

作者: 无糖Kel | 来源:发表于2019-03-31 13:39 被阅读0次

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

    环境 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

      以上

    相关文章

      网友评论

        本文标题:Unity根据Text内容设置宽高

        本文链接:https://www.haomeiwen.com/subject/bfgybqtx.html