Решить, какой вариант набора активов 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 изменил форму возвращаемого значения. Поиграйте с ним, чтобы увидеть, что он возвращает, если это не правильно. Также посмотрите это и это.

Другие вопросы по тегам