@trukhachev

Как переиспользовать спрайты для фигур в игре типа match3?

Добрый день, изучаю на досуге игровой движок и решил для практики написать простую игру в жанре match3.

Предположим у нас игровое поле 10 на 10. Соответственно, в цикле я создаю 100 фигур из префаба. Так же у меня есть спрайт (атлас) с 8 видами фигур. Я хочу один раз аллоцировать память на 100 фигур и 8 спрайтов и по мере их уничтожения игроком на экране менять им тип, позицию и спрайт и сново выводить на экран. Как это обычно решается? Напрашивается простое решение менять спрайт через код или использовать 8 состояний и менять через механизм анимации. Но все методы кажутся кривыми. Как это решать правильно?
  • Вопрос задан
  • 57 просмотров
Решения вопроса 1
GavriKos
@GavriKos Куратор тега Unity
Кешируют обычно не спрайты, а геймобжекты целиком.
Делается контроллер кеша, который не используемые сейчас ГО выключает, но оставляет на сцене. Нужно создать новый объект - просите контроллер создать, а он смотрит - есть ли у него объект нужного типа или нет. Если есть - просто включает его. Если нет - создает стандартным Instantiate.
Чтобы не менять спрайт через код - можно сделать не 1 префаб, а по префабу на каждый тип элемента для вашей игры.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы