ContentSizeMininum.cs 931 B

1234567891011121314151617181920212223242526
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. [RequireComponent(typeof(RectTransform)), ExecuteInEditMode]
  6. [AddComponentMenu("UI/Content Size Mininum")]
  7. public class ContentSizeMininum : MonoBehaviour {
  8. [System.NonSerialized] private RectTransform m_Rect;
  9. private RectTransform rectTransform {
  10. get {
  11. if (m_Rect == null) m_Rect = GetComponent<RectTransform>();
  12. return m_Rect;
  13. }
  14. }
  15. void Update() {
  16. List<RectTransform> childTransforms = new(GetComponentsInChildren<RectTransform>());
  17. if (childTransforms.Count == 1) return;
  18. RectTransform childTransform = childTransforms[1];
  19. Vector2 newSize = new(LayoutUtility.GetPreferredWidth(childTransform), LayoutUtility.GetPreferredHeight(childTransform));
  20. if (rectTransform.sizeDelta != newSize) rectTransform.sizeDelta = newSize;
  21. }
  22. }