Вопрос Как адаптировать UI под все разрешения экрана?

  • Nellored
  • Модератор раздела "Garry's Mod"
  • 831
  • 160
  • 174
Стандарт. Но можно также кэшировать значения, дабы по сто раз не просчитывать одно и тоже
да таким способом можно, но как по мне можно просто создать локальную переменную, aka ячейка памяти, а так как функция уже была однажды вызвана, то и пересчитывать не придётся
 
  • 10
  • 1
Контакты для связи отсутствуют.
Недавно начал заниматься разработкой всяких менюшек и прочих UI элементов
Никогда ранее таким не занимался, и столкнулся с проблемой, что на разных разрешениях худ куда то улетает :animeload:

Кто может подсказать или дать какой то пример кода, как адаптировать все это под все разрешения экрана?
optimozer:
local Sizes = {} -- таблица с оптимизированным под экраны значениями

function OptimizeSize(size)

    if Sizes[size] == nil then -- если нужное значение еще не было оптимизированно под экран оптимизируем

        Sizes[size] = math.Round(ScreenScale(size/1920*640)) -- 1920  так как мой моник 1920x1080 если используешь значения например 13.2131 можешь убрать math

    end

    return Sizes[size] -- возвращаем оптимизированное под экран значение

end


пример оптимизированных значений:

Old:
1 = 0
5 = 2
59 = 20
67 = 22

New:
1 = 1
5 = 5
59 = 59
67 = 67

Где Old(640x480) и New(1920x1080)
 
  • 246
  • 13
  • 53
optimozer:
local Sizes = {} -- таблица с оптимизированным под экраны значениями

function OptimizeSize(size)

    if Sizes[size] == nil then -- если нужное значение еще не было оптимизированно под экран оптимизируем

        Sizes[size] = math.Round(ScreenScale(size/1920*640)) -- 1920  так как мой моник 1920x1080 если используешь значения например 13.2131 можешь убрать math

    end

    return Sizes[size] -- возвращаем оптимизированное под экран значение

end


пример оптимизированных значений:

Old:
1 = 0
5 = 2
59 = 20
67 = 22

New:
1 = 1
5 = 5
59 = 59
67 = 67

Где Old(640x480) и New(1920x1080)
+rep
 
  • 139
  • 3
  • 15
Только шрифты придётся самому делать и потом выбирать по шрифтам, потому что если не тот размер шрифта выберешь, всё полезет чёрнофиолетовым и вылетит
 
Сверху Снизу