Показать сообщение отдельно
Старый 29.02.2016, 11:09   #2300
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,376
Написано 491 полезных сообщений
(для 886 пользователей)
Ответ: Вопросы от новичка

Можно сделать функцию RefineTargetObject(GameObject obj), которая будет определять очередную цель по каким-то параметрам.
Вызываешь эту функцию в методе OnCollisionEnter2D() и передаёшь туда объект столкновения.
Можно завести переменные под те параметры, по которым ты проверяешь, например minHp.
В функции RefineTargetObject делаешь сравнение
if (obj.hp minHp) {
  
minHp obj.hp;
  
target obj// наша новая цель

Таким образом, при каждой коллизии мы имеем возможность переключаться на другую цель, если у неё hp меньше. В функции атаки используем эту переменную target - кого атаковать.
Начальное значение для minHp можно сделать int.MaxValue.
obj.hp - это упрощённо, на самом деле hp ты получишь из своего obj.GetComponet<...>
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо Жека за это полезное сообщение:
Владимир (29.02.2016), Nex (01.03.2016)