@SimasikS
Я есть

Можно ли так использовать интерфейсы в unity?

Добрый, всем, день!

У меня есть интерфейс IAtack, который имеет метод Atack().

Его реализуют несколько классов MeleeAtack и RangeAtack. Которые реализуют логику атаки для ближних юнитов и дальних соответственно.
Так же MeleeAtack и RangeAtack наследуются от MonoBehaviour.
Суть в том что при такой архитектуре я могу кидать один из компонентов Melee или Range и в скрипте контроллера
IAtack atack = GetComponent();
И вот таким образом получать атаку, в зависимости от компонента накинутого на объект.

Таким образом я не переплетаю не нужную логику в одном общем классе и смогу общие методы при нужде вынести в абстрактный.

Но чует моё сердце, что этот подход, какой-то немного странный(скорее всего, потому-что я нигде не видел подобного). Может подскажете, как лучше организовать подобный код.
  • Вопрос задан
  • 751 просмотр
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
Нормальный подход, так много где делают, просто мало кода видели, вот и кажется странным. Более того, его используют не только для атакующих, но и атакуемых, например, делают интерефейс IDamageable и при нанесении урона работают с ним, а логика нанесения повреждений скрывается в конкретном классе.
P. S. Attack пишется с двумя t.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
GavriKos
@GavriKos Куратор тега Разработка игр
Хороший подход. Все норм.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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