Unity根据Text内容设置宽高


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

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

  以上

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、Unity简介 1. Unity界面 Shift + Space : 放大界面 Scene界面按钮渲染模式2D...
    MYves阅读 12,708评论 0 22
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,710评论 1 92
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,794评论 4 61
  • 昨天,兄弟单位的办公室负责人打来电话,就我两天前发布的新闻信息中模糊带过的关键字眼探讨了一番。同是单位新闻信息发布...
    素回路的职场路阅读 2,778评论 0 0
  • 因为我的荔枝故事《小黑鱼》,我崇拜的夏天幼儿园班主任也和我有了深度链接。这对我的阅读推广之路有着很大的激励...
    玉芹123阅读 3,369评论 0 0

友情链接更多精彩内容