Решить, какой вариант набора активов xxhdpi, xhdpi, hdpi, mdpi или ldpi следует выбрать в игре unity3d, чтобы иметь достойный интерфейс без пикселирования?
При разработке интерфейса в единстве. Если я напрямую прикрепляю одно изображение и текст с разрешением mdpi с разным разрешением, изображения / спрайты масштабируются в соответствии с размером экрана. Но проблема в том, что когда изображение масштабируется, оно отображается как пиксельное?
Поэтому я читал о вариантах комплектов ресурсов и пытался использовать их, создавая разные комплекты для разных разрешений. (пучками являются: xxxhdpi, xxhdpi, xhdpi, hdpi, mdpi и ldpi).
Но я застрял в том, как выбрать вариант комплекта ресурсов для устройства, на котором запущена моя игра. Как использовать Screen.dpi
в единстве, чтобы достичь этого?
Я предполагаю, что могу сделать то же самое для устройств Android(телефоны и вкладки) и IOS(iPhone и iPad).
1 ответ
Таблица следующая:
- MDPI - 160 точек на дюйм
- HDPI - 240 точек на дюйм
- XHDPI - 320 точек на дюйм
- XXHDPI - 480 точек на дюйм
- XXXHDPI - 680 точек на дюйм
Таким образом, проверка будет:
void Start(){
if(Screen.dpi <= 160){
//change your UI textures for mdpi
}else if(Screen.dpi <= 240){
//change your UI textures for hdpi
}else if(Screen.dpi <= 320){
//change your UI textures for xhdpi
}else if(Screen.dpi <= 480){
//change your UI textures for xxhdpi
}else{
//change your UI textures for xxxhdpi
}
}
Изменить: Помните, что, возможно, Unity изменил форму возвращаемого значения. Поиграйте с ним, чтобы увидеть, что он возвращает, если это не правильно. Также посмотрите это и это.