Система ХП по ячейкам в Юнити

Делаю изометрическую игру и решил реализовать ХП в виде куба, три грани которого будут ячейками здоровья (пример на первом скрине) с возможностью добавлять целую ячейку в будущем при прокачке.

Фулл

Первое получение урона

Второе получение урона

Ну вы поняли

Ну и что бы в будущем можно было добавить красивые анимации убывания и восполнения отдельной грани.

Я пока нашёл только 1 вариант реализации, это сделать заготовленные n ячеек на весь экран, где в основной 4 состояния (3/3, 2/3, 1/3 и 0/3) и отображать текущее количество нужных ячеек, остальные деактивировать, а активный "куб" который получает урон или восполняет здоровье перемещать на нужную ячейку, но если так делать то получится большое нагромождение из свича с 9-ю кейсами и самое главное - таким образом пропадает возможность анимации отдельно каждой грани.

Понимаю что может я пытаюсь прыгнуть выше головы и это излишне, но может кто сталкивался или имеет идеи как это красиво реализовать?


Ответы (1 шт):

Автор решения: immorom

Если куб, это просто растровый Image на Canvas'е, то у картинок есть свойство "Image type", и у типа "Filled" пункт "Fill method".

Вот

Можно наложить картинку в цвете на обесцвеченную и за каждое потерянное очко здоровья отнимать треть от "Fill amount" (хотя правильнее, наверное, будет что-то типа: image.fillAmount = health / 3f). Геометрия твоего куба вполне позволяет провернуть эту аферу.

Думаю, это можно и красиво анимировать при желании.

→ Ссылка