Unity: как создать автоматически расширяемое меню, сделанное из 3D объектов

Если вам нужен список объектов (а в простонародье — меню), который можно листать/пролистывать и, который будет автоматически расширятся, при добавлении нового объекта (3D или 2D), то нужно сделать 4 вещи:

  1. Создать прокручиваемый список с помощью UI -> Scroll View.
  2. Навесить на каждый элемент этого списка стандартный скрипт Layout Element.
  3. Навесить на родительский объект всех элементов списка (по умолчанию он называется ScrollableContent) скрипт Horizontal Layout Group.
  4. Навесить скрипт Content Size Fitter на этот же объект ScrollableContent .

После того, как вы настроите нужный размер каждого элемента в скрипте Layout Element, то размер списка будет формироваться автоматически. И если теперь добавить туда новый объект, то список автоматически расширится, а элементы (благодаря скрипту Horizontal Layout Group) будут всегда выстроены на одинаковом расстоянии и в ровную линию.

Unity: как создать автоматически расширяемое меню, сделанное из 3D объектов: 2 комментария

  1. При этом начало списка будет оставаться в верху.
    А можно ли как-нибудь автоматически сделать, чтобы данные смещались? Т.е. при заполнении всегда была видна только что добавленная строка, а старые данные уходили вверх и скрывались за рамкой?

    1. В вашем случае нужно использовать не Horizontal Layout Group, а Vertical Layout Group. Самую нижнюю границу ScrollableContent выровнять с нижним краем экрана. А также поставить Pivot у ScrollableContent (такой синий кружочек с дырочкой внутри) на самую нижнюю границу.
      Всё. Теперь при добавлении нового элемента — он будет внизу, а все другие элементы уедут вверх.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *