Среда, 06 Ноября 2024, 06:31

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
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 новый ГУЙ вышел, можно "якорнуть" и всего делов.


  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг