ContentSizeFitter не обновляет объект после добавления дочернего объекта

Есть объект WordBlock. На нем висит VerticalLayoutGroup, который вертикально размещает объектов-детей, и ContentSizeFitter, который подгоняет размер RectTransform под количество дочерних объектов.
Если говорить просто, то я хочу, чтобы при добавлении белых окошек InputField серый прямоугольник растягивался вниз.

Однако после создания объекта SynonymBlock из скрипта, серое окошко не изменяет размера, как будто не обновилось. Чтобы оно обновилось достаточно просто вручную отключить-включить объект, но это вручную. Что нужно сделать, чтобы оно обновлялось и подгоняло размер само после созданию дочернего объекта?

Скорее всего подобный вопрос уже был, но я его не нашел. Если есть, отметьте как дубликат, я посмотрю.

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Максим Фисман

Как оказалось ContentSizeFitter работает по-другому, и он вообще не работает, вися на объекте LayoutElement. Я решил задачу своим кодом.

[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); // Задаем высоту
    }

Этот код полностью удовлетворяет моей задаче

→ Ссылка