Показать сообщение отдельно
Старый 18.01.2016, 16:46   #1
ABTOMAT
Ференька
 
Аватар для ABTOMAT
 
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений
(для 15,675 пользователей)
Проделки размера GUI

Сделал GUI а Canvas.
У последнего выставлено
UI Scale Mode: Scale With Screen Size

На нём расположено некоторое количество элементов (пара кнопок, тексты, картинка).

Но у меня также есть префабы кнопок, из которых я создаю GameObject'ы вот так:

GameObject levelButton = (GameObject)Instantiate(Resources.Load("путь-к-префабу"typeof(GameObject)));
levelButton.transform.SetParent(canvas.transform); 
В Play Mode всё ок.

Те элементы, которые я разместил в редакторе — с ними нормально всё.
Когда компилю и запускаю на мобилке, кодом созданныя кнопки становятся меньше чем надо, раза в три.

Конечно, это связано с тем, что у меня окошко Game маленькое, а телефон FullHD.
Но, блин, какого хрена не срабатывает UI Scale Mode: Scale With Screen Size у канваса? И почему если я на нём в редакторе размещу элементы GUI, то они норм скейлятся? А вручную заинстансенные ведут себя вот так?

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

Количество и расположение кнопок зависит от происходящего в игре, поэтому я не могу разместить их все заранее.
Гуглить это сложно по той причине, что новый GUI появился в Юнити сравнительно недавно, и теперь в результатах поиска неразбериха, постоянно попадаю на инфу о Legacy GUI.

Ответ дан в посте №3
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**

* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена


Последний раз редактировалось ABTOMAT, 19.01.2016 в 20:50.
(Offline)
 
Ответить с цитированием