Unity给Text添加扩展方法
文本区域灵活变化,随文字的多少变化的两种类型:
- 高度保持不变,动态设置文本区域的宽度
- 宽度保持不变,动态设置文本区域的高度
using UnityEngine;
using UnityEngine.UI;
/// <summary>
/// UI扩展
/// </summary>
public static class UIExtension
{
/// <summary>
/// 动态设置Width,高度保持不变
/// </summary>
/// <param name="text">扩展Text的组件</param>
public static void FontAreaChangesForWidth(this Text text) {
RectTransform rect = text.GetComponent<RectTransform>();
// 获取Text的Size
Vector2 v2 = rect.rect.size;
// 动态设置Width
rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, text.preferredWidth);
// height保持不变
rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, v2.y);
}
/// <summary>
/// 动态设置Height,宽度保持不变
/// </summary>
/// <param name="text">扩展Text的组件</param>
public static void FontAreaChangesForHeight(this Text text) {
RectTransform rect = text.GetComponent<RectTransform>();
// 获取Text的Size
Vector2 v2 = rect.rect.size;
// width保持不变
rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, v2.x);
// 动态设置height
rect.SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, text.preferredHeight);
}
}
参考博客: https://blog.csdn.net/qq_26541839/article/details/106504451