版权说明:本文为博主原创文章,转载需注明出处
环境 Unity 2018.3.9f1
开发时免不了动态加载文字,如果只是单独在某个位置显示文字,我们只要根据布局将Text对象的宽高设置为极限值或者设置溢出就可以了。但是在某些情况下这样就不理想了。
例如,此时有个滚动列表(假设有),里面有个Text,内容为这是一堆文字,具体多少我也不知道,反正就是一堆文字
,由于设置溢出会造成文字的重叠,所以不能设置溢出。出现的情况就会是这样:
所以必须在动态加载文字的时候手动设置一下Text对象的宽高。这里有两个重要的属性
Text.preferredWidth
和Text.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
以上
网友评论