У меня есть игра в которой я хочу реализовать возможность смены темы игры, но для этого нужно для каждого элемента присваивать отделенный спрайт, но как лучше это сделать, как лучше сделать возможность получить доступ ко всем спрайтам? Как я понимаю, отдельный массив всех спрайтов для каждого элемента, объявленный в скрипте, будет не самым лучшим решением...
Массивы спрайтов принято паковать в специальные атласы - Sprite Atlas. Процедура "извлечения" спрайтов из атласа - SpriteAtlas.GetSprites
, дальнейший доступ к конкретным спрайтам осуществляется через индексы в обычном массиве. Это значит, что и код для получения конкретных спрайтов будет идентичен.
Учитывая эту реализацию, можно паковать UI темы в отдельные атласы и сменять эти атласы в зависимости от выбранной темы:
// Сменяемый атлас
[SerializeField]
SpriteAtlas uiAtlas;
void SetUiTheme(){
var uiSprites = new Sprite[uiAtlas.spriteCount];
uiAtlas.GetSprites(uiSprites);
// доступ к спрайтам по индексам
// uiSprites[0], uiSprites[1], и т.д.
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Можете подсказать, вот у меня есть 2 монитора и мне нужно по нажатию кнопки перенести окно WPF на другой монитор и при повторном нажатии кнопки...
Разрабатываю игру flappy bird, столкнулся с такой проблемой, что не могу прорисовать трубы(PictureBox)Написал код для прорисовки труб, создал массивы,...
Где её хранить и в каком виде? В базе данных, в отдельной строке в таблице Users?