[ExecuteAlways] // Чтобы размер подгонялся даже при редактировании (для удобства)
[RequireComponent(typeof(RectTransform))]
public class VerticalSizeFitter : MonoBehaviour
{
[SerializeField] private int DefaultHeight; // Высота при отсутствии блоков
[SerializeField] private int BlockHeight; // Высота блока
[SerializeField] private Transform TargetParent; // Родитель блоков
private RectTransform myRT;
private void Awake()
{
myRT = GetComponent<RectTransform>(); // Кэшируем
}
public void Update ()
{
myRT.sizeDelta = new Vector2(myRT.sizeDelta.x, DefaultHeight + BlockHeight*TargetParent.childCount); // Задаем высоту
}
事实证明,它
ContentSizeFitter的工作方式不同,它根本不起作用,挂在 LayoutElement 对象上。我用我的代码解决了这个问题。这段代码完全满足我的任务