Форум программистов, компьютерный форум, киберфорум
Наши страницы
Unity, Unity3D
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Staz Lincord
11 / 10 / 8
Регистрация: 04.12.2013
Сообщений: 309
1

Разрешения экрана

30.08.2017, 15:17. Просмотров 1190. Ответов 3
Метки нет (Все метки)

Прив. Делаю меню настроек, делаю дропдаун и через скрипт вывожу все разрешения экрана циклом foreach:

C#
1
2
3
4
resolutions = Screen.resolutions;
foreach(Resolution resolution in resolutions) {
    ResolutionDropdown.options.Add(new Dropdown.OptionData(resolution.ToString()));
}
Проблема такова что она выводит каждое разрешение по три раза, кроме последнего.

Переменная resolutions инициализируется так: public Resolution[] resolutions;
Проверял принтом в консоль, там точно также.
Хэлпаните
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.08.2017, 15:17
Ответы с готовыми решениями:

Scrollview на разные разрешения экранов
Здравствуйте. В игре хочу сделать магазин, где можно будет пролистывать уровни...

Настройки экрана
У меня возникла проблема. Я сделал уровень 2D игры, после чего я его...

Разрешение экрана
Подскажите, в каком разрешении (free aspect, 16:9 и так далее) надо делать игру...

Освещение. Затемнение экрана
Здравствуйте, делаю 2д игру на Юнити 5.4.0. Подскажите, пожалуйста, как...

Затухание экрана к центру
Как сделать затухание плавное экрана к центру? Плавненько так красивенько......

3
wmysterio
173 / 163 / 85
Регистрация: 24.12.2014
Сообщений: 491
Завершенные тесты: 8
30.08.2017, 17:46 2
Лучший ответ Сообщение было отмечено Staz Lincord как решение

Решение

Staz Lincord, Ничего страшного ) У меня дублируются по 2 раза. Связано это с тем, что одно разрешение может иметь разную глубину цвета ( у меня доступны 16-ти и 32-х битные цветовые палитры для каждого разрешения экрана )
1
Staz Lincord
11 / 10 / 8
Регистрация: 04.12.2013
Сообщений: 309
31.08.2017, 03:16  [ТС] 3
wmysterio, я что то не сильно нашел изменения когда переключался, но всё же, я додумался как это убрать:

C#
1
2
3
4
5
6
7
8
resolutions = Screen.resolutions;
foreach(Resolution resolution in resolutions) {
    if (old_res.ToString() != resolution.ToString())
    {//Проверка на повторы разрешений
        old_res = resolution;
        ResolutionDropdown.options.Add(new Dropdown.OptionData(resolution.ToString()));
    }
}
Правильно ли это? Можно как-то упростить этот код? Например как сравнивать разрешения? Я пытался их сравнить но не получилось, тогда я перевел их в тип стринг и работает правильно.
0
wmysterio
173 / 163 / 85
Регистрация: 24.12.2014
Сообщений: 491
Завершенные тесты: 8
31.08.2017, 09:55 4
Staz Lincord, попробуйте так сделать:
C#
1
2
3
4
var uniqueResolutions = Screen.resolutions.Distinct().ToArray();
foreach(Resolution resolution in uniqueResolutions ) {
        ResolutionDropdown.options.Add( new Dropdown.OptionData( resolution.ToString() ) );
}
Если там есть копии, то они будут отрезаны. Правда здесь есть подвох, что может обрезаться лучшая цветовая палитра.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.08.2017, 09:55

Разрешение экрана в Unity
Всем привет:victory: Делаю игрушку на андроид и столкнулся с проблемой...

Переместить мышь в центр экрана
Подскажите пожалуйста как можно задать положение мыши на игровом окне - экране?...

Центрирование 3d относительно размера экрана
Добрый день , стала проблема нужно изменять положение объекта в сцене при...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru