Борис Постнов
Гуру
(3412)
4 недели назад
Обычно достаточно настраивать Size и Position всех GUI элементов с помощью параметра Scale, тогда будет лучше для всех девайсов.
Для этого легче всего использовать плагин который конвертирует из Offset в Scale и наоборот, я использую AutoScale Lite
Но иногда приходится изменять UI элементы прямо в runtime'е (во время игры) с помощью скриптов, т.е. скрипт определив девайс пользователя настраивает UI как нужно для девайса. Для определения девайса я обычно пишу отдельный ModuleScript, и в нём проверка на UserInputService:GetLastInputType() и после финальные проверки которые берут в расчёт все EnumItem'ы Enum.UserInputType. Однако это не всегда может быть правильно - т.к. иногда даже у телефона может быть подключена клавиатура (или что-то типа того), насколько я знаю, поэтому очень часто практикуется ручной выбор девайса игроком где-то во внутриигровом меню настроек игры.
В принципе, способов всегда достаточно