Доброго комрады.
Суть вопроса такая, есть игра, для понимания представим что это RTS, вид сверху, немного под уголом. Unity 2D.
Мне надо управлять соответственно мобами, как игрока так и противника. Есть два пути управления:
1). Связка RB + колайдер. В этом случаи мобы будут толкать друг друга есть их пути пересекутся. И будут толкать врагов если пойдут в ближний бой. Даже есть я их остановлю в коде перед врагом, то может подойти еще один моб и толкнуть остановленного и сдвинуть всю очередь. Это не приемлемо. Может быть есть способ это взаимодействие убрать?
2). CharacterController. Мобы не толкаются, все как положено, но.. этот контроллер проходит сквозь двумерные колайдеры. А мне бы хотелось расставлять статические колайдеры в непроходимых местах, да и банально здания нельзя проходить насквозь. СС реагирует как надо только на трехмерные колайдеры. Второй косяк, это то что мне не удается увидеть других мобов с помощью Physics2D.CircleCastAll(this.transform.position, 10f, new Vector2(0, 0)). А мне надо находить врагов вокруг юнита, что бы задать ему цель для атаки если враг близко. Эти ограничения на СС действительно существуют, или я что-то делаю не так? Я бы не хотел писать сложную систему обнаружения препятствий и алгоритмы обхода их. Тем более что в движке это все есть.
Может быть есть другой путь для организации управления юнитами в unity 2D?