Unity UI динамически изменяет высоту

Как изменить высоту игрового объекта SQLDataTable, чтобы он уменьшался по высоте, но сохранял фиксированное положение на холсте? Как вы можете видеть, текст над ним (игровой объект helptext, который имеет приспособление для подбора размера контента, предпочтительнее подгонка по размеру по вертикали) перетекает в таблицу.

Теперь я знаю, как переместить таблицу вниз с помощью приведенного выше текста, я бы сделал таблицу дочерней, но я не хочу этого делать. Я хочу просто уменьшить высоту таблицы по отношению к приведенному выше тексту, а также игнорировать ошибки.

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

1 ответ

Если у вас есть элемент холста пользовательского интерфейса, для которого вы хотите изменить высоту или ширину, вам нужно сделать что-то вроде следующего:

int height = 1000; // or whatever
gameObject.GetComponent<RectTransform>().SetSizeWithCurrentAnchors(RectTransform.Axis.Vertical, height);

(Вам нужно будет изменить ось на RectTransform.Axis.Horizontal чтобы изменить ширину.)

Это довольно старый пост, но я немного погуглил, как программно установить высоту элемента пользовательского интерфейса (и оказался здесь). Я полагаю, что уже слишком поздно помогать OP, но, надеюсь, кто-то еще сочтет это полезным.

Я рекомендую вам взглянуть на эту страницу; поставляется с полезными скриптами для использования нового пользовательского интерфейса; в частности, uGUITools. Это экономит много времени.

Теперь, что я делаю, это массив холста, который выглядит как изображение выше введите описание изображения здесь

Пожалуйста, не обращайте внимания на кнопки, расположенные друг перед другом. Я полагаю, что это работает на мобильных устройствах, поэтому вам нужна GridLayoutGroup или VerticalLayoutGroup, которые позволят вам достичь того, чего вы хотите.

Кстати, я загружаю информацию из БД и помещаю эту информацию в новый элемент внутри Grid, чтобы я мог прокручивать горизонтально между элементами, образуя матрицу [9xn].

Ps. Извините за мой плохой английский.

Другие вопросы по тегам