Запилил UI для редактора аватаров
Пришлось повозиться чтобы разложить все кнопочки и пойти на все компромиссы. По ходу дела случилось несколько раз матюкнуться...
Первое что пришлось пустить под нож - это одноуровневую структуру вложенности.
В старой версии была разбивка на группы, внутри которых сразу располагались элементы аватара. В новой версии, которая ориентируется на экран смартфона, такой роскоши не получается как ни вертись - места на экране не хватает.
Пришлось делать два уровня вложенности, например "Тело -> Цвет кожи"
Второй компромисс - это горизонтальный скроллинг в списке элементов. На тех же смартфонах есть нативный свайп, а вот на десктопе придётся пользоваться стрелками, это геморрой. К счастью, настройка аватара нужна игроку не часто и в основном это скорее медитативный экспириенс, сродни выбору обоев, поэтому стремление к эффективности здесь ни к чему.
Третий момент, который меня цепляет, но не придумал как решить иначе - это кнопка сохранения в правом верхнем углу. Везде стараюсь делать в нижней части экрана, а здесь ну никак места не хватает. А в углу как раз пусто. Поэтому будет так.
Четвертый момент - выбор пола персонажа придётся упаковать в один из подразделов группы Body, хотя с точки зрения технической это вообще не элемент аватара, а краеугольный параметр, от которого всё пляшет. Придётся в коде городить жуткие костыли вокруг этого решения.
Пятый пункт - самый смак :)
В игре есть некоторые дефолтные элементы аватара, у которых можно выбрать цвет (на скринах - красные кружочки в самом низу). К таким элементам относятся глаза, волосы, борода, чулочки и ещё несколько разных мелочей.
При работе над селектором цветов я решил взглянуть, а сколько в реальности таких цветов. И обнаружил прикол - для двух третей элементов на выбор есть 10 цветов, а для одной трети - почему-то 11! Причём набор цветов у тех, что 10 и у тех что 11, не совпадает. То есть нет какого-то такого одного цвета, который можно выкинуть и наборы станут одинаковыми :)
Что было у нас в голове когда мы делали эти элементы много лет назад? На кой чёрт мы взяли простое число для количества цветов? Ладно бы оно какое-то особое было, типа чёртовой дюжины, но нет же!
Чтобы решить проблему я полез в базу данных - смотреть, какой из цветов в каждом из наборов по 11 используется реже всего. Больше не будет жёлтых чулочков.
Вероятнее всего, интеграция нового UI с движком займёт остаток рабочих дней в этом году. Ну и пусть. Зато спокойно сделаю как надо.
До скорых встреч!