Я создаю игру с башней в Unity, и я столкнулся с проблемой.
У меня есть класс Unit, где у моих мобов есть параметры, такие как HP, урон, тип, скорость и т. Д. И метод Hit (int damage) (который повреждает блок). И у меня есть класс для каждого типа единиц: воин, рейнджер, маг и т. Д., Которые наследуют. Класс объекта
Башня начинает стрелять, когда моба входит в зону его действия. Башни не имеют пули, ракеты или что-то еще, чтобы стрелять. Вопрос в том, как назвать этот метод Хит из сценария башни?
Для каждого устройства у меня есть сборник с двумя скриптами на нем: Единица и, например, Танк. Я думаю, это неправильно, потому что у меня есть 2 класса Unit: один только Unit и один унаследованный, например, Tank. Так что это не кажется правильным:Метод вызова из родительского объекта C# Unity3d
if (obj.GetComponent<Unit>()) obj.GetComponent<Unit>().Hit(dmg);
Кроме того, я думаю, что это не так, чтобы проверить этот путь:
if (obj.GetComponent<Tank>()) obj.GetComponent<Tank>().Hit(dmg);
else if (obj.GetComponent<Warrior>()) obj.GetComponent<Warrior>().Hit(dmg);
else ... etc.
Так что это правильный способ вызова Hit?
Спасибо. Я просто разделил Единицу и другие. Может быть, это нехорошее решение, но отлично работает в моем случае. И спасибо за ссылку. Я даже не слышал об этом в Единстве. – user3043365