Как определить расстояние между несколькими объектами в 2d?
Игра в жанре TD. Нужно каким-то способом заставить стрелять башни в объект, который ближе к финишу. Пробовал сначала захватывать объект и пока он не умрёт - бить его. Появились минусы этого способа. Дальше решил сделать list с врагами и записывать их, когда они входят в зону действия и убирать из списка, когда они его покидают/погибают, но если объект вошёл, например, вторым, а третий его обогнал, когда уже был в зоне действия башни, то после убийства первого объекта, башня переключится на тот, который вошёл вторым, хотя третий объект уже находится ближе к финишу и это явная недоработка.
Поэтому вопрос, как можно реализовать подсчёт пути?
Игра 2д, дорога кривая, где-то вверх, где-то вниз, разные раунды и соответственно разные дороги. Как реализуют такое вообще, может кто делал подобное?
Как вариант считать расстояние от спавна до финиша, потом записывать сколько каждый моб прошел, дальше записывать процент пройденного пути и по нему уже ориентироваться. Это так, что первое в голову пришло
Ваши монстры идут по вейпоинтам в определённом порядке. Это значит, что у каждого монстра должно быть состояние, которое говорит о том, куда сейчас монстр стремится. Если предположить, что вейпоинты у вас в массиве, то состояние - это индекс следующего вейпоинта. В таком случае вы можете брать всех монстров с максимальным индексом, и, пользуясь Vector3.Distance, определять отдалённость от целевого вейпоинта всех проверяемых монстров. Затем выбрать наименьшее из них.