GUI и его масштабирование
|
|
Darian56 | Дата: Воскресенье, 04 Января 2015, 16:37 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Ребят, есть какое-нибудь решение проблемы с GUI? Нужно,чтоб они на всех разрешениях экрана отображались одинаково или есть команды, чтобы они автоматически выравнивались?
|
|
| |
allods | Дата: Воскресенье, 04 Января 2015, 18:16 | Сообщение # 2 |
почти ветеран
Сейчас нет на сайте
| кодом, только хардкор
Сообщение отредактировал allods - Воскресенье, 04 Января 2015, 18:16 |
|
| |
shizofren | Дата: Воскресенье, 04 Января 2015, 18:23 | Сообщение # 3 |
Starting MS-DOS...
Сейчас нет на сайте
| Цитата Darian56 ( ) Ребят, есть какое-нибудь решение проблемы с GUI? Нужно,чтоб они на всех разрешениях экрана отображались одинаково или есть команды, чтобы они автоматически выравнивались? В параметрах left и top делай процент от экрана, а ширина и высота не так критична для разных разрешений.
Моя команда
|
|
| |
White9 | Дата: Воскресенье, 04 Января 2015, 18:35 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| shizofren, ещё как критично ) Да, на близких разрешениях разницы почти не будет, но на мониторе 1021х768 и 1980х1080 разница будет ой как заметна ) Darian56, если кратко - настраивай всё под определённое разрешение, затем делай так: бери разрешение экрана конкретного устройства, дели его на исходное, под которое делал, а затем длину и ширину элемента GUI домножай на получившийся коэффициент
|
|
| |
shizofren | Дата: Воскресенье, 04 Января 2015, 20:24 | Сообщение # 5 |
Starting MS-DOS...
Сейчас нет на сайте
| Цитата White9 ( ) shizofren, ещё как критично ) Да, на близких разрешениях разницы почти не будет, но на мониторе 1021х768 и 1980х1080 разница будет ой как заметна ) Хорошо, кнопку вы отмасштабируете, а что будешь делать с размером шрифта. Я понимаю, что будет разница заметна, но все будет вполне юзабелно. Например, в том же сталкере такое есть, на маленьком разрешении большие кнопки, а на разрешениях побольше они поменьше, выглядит все это аккуратно. Останусь при своем, важно в основном позиционирование, выглядеть будет так:
Код GUIStyle style = new GUIStyle(); style.alignment = TextAnchor.MiddleCenter; GUI.Label(new Rect((Screen.width * 0.5f) - 300, (Screen.height * 0.5f) - 50, 600, 100), "Hello World", style);
Можете попробовать этот код в OnGUI. При любом разрешении текст будет у вас по центру экрана.
Моя команда
Сообщение отредактировал shizofren - Воскресенье, 04 Января 2015, 20:25 |
|
| |
beril | Дата: Воскресенье, 04 Января 2015, 21:18 | Сообщение # 6 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| Я как раз видео снимал на эту тему ссылка
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
Darian56 | Дата: Понедельник, 05 Января 2015, 13:43 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| shizofren, а если например под Андроид игра, то с GUI всё хорошо будет? Нормально выглядеть должно?
Сообщение отредактировал Darian56 - Понедельник, 05 Января 2015, 13:43 |
|
| |
Otinagi | Дата: Понедельник, 05 Января 2015, 15:04 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Я в своих проектах так делал: скачать.
Один скрипт вешал на текстуру, другой на текст. Изначально проект разрабатываю под разрешение 1920х1080, а потом он скалю под текущее разрешение этими скриптами. Под Андроид работает, под Виндовс тоже. В других ОС не проверял. В этих исходниках за основу брал вертикаль (1080), но несколько раз приходилось брать горизонталь (1920) - все зависит от интерфейса. Код отрабатывает в Awake(), чтобы можно было в другом скрипте в Start() сделать объект невидимым в начале игры, при этом настроив нужный размер.
«Смерти меньше всего боятся те люди, чья жизнь имеет наибольшую ценность.» Иммануил Кант
|
|
| |
Darian56 | Дата: Понедельник, 05 Января 2015, 15:40 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| Ребят,а может знает кто? Есть команда в unity, которая узнавала бы разрешение экрана на котором было запущенно приложение.
|
|
| |
Xoid | Дата: Понедельник, 05 Января 2015, 16:59 | Сообщение # 10 |
почетный гость
Сейчас нет на сайте
| Darian56, Цитата Xoid ( ) которая узнавала бы разрешение экрана http://docs.unity3d.com/ScriptReference/Screen-currentResolution.html
в документации есть все, ищите внимательней..
skype:xoid_main | С#/Unity
Сообщение отредактировал Xoid - Понедельник, 05 Января 2015, 17:02 |
|
| |
allods | Дата: Понедельник, 05 Января 2015, 17:07 | Сообщение # 11 |
почти ветеран
Сейчас нет на сайте
| Всегда делай картинки под самый большой размер экрана. А дальше немного логики. Я всегда беру разницу между шириной и высотой экрана и множу на размер картинки соблюдая пропорции, чтобы она не был вытянутой
|
|
| |
Matou | Дата: Вторник, 06 Января 2015, 00:41 | Сообщение # 12 |
Исходный коТ
Сейчас нет на сайте
| Хватит хардкодить, в 4.6 новый ГУЙ вышел, можно "якорнуть" и всего делов.
|
|
| |