Коллизию объектов стоит реализовать через отдельный компонент и подключать её к любым нужным объектам.
У компонента как минимум должны быть свойства:
- isTrigger - булевое свойство для включения/выключения препятствия
- actorsToIgnore - массив объектов, для которых коллизия не будет срабатывать (примеры: прострел стен пулями или база, на которую не смогут зайти враги)
Коллайдер не нужен, потому что изначально игра рассчитана на объекты одинакового размера/формы
Перед перемещением объекта на нужную клетку нужно посмотреть если там объекты и есть ли у какого-либо из них коллизия с isTrigger = false. Если такая есть - вызываем функцию столкновения, но на клетку не перемещаемся, иначе - вызываем функцию и перемещаемся на ту же клетку
Так же при столкновении должен вызываться интерфейс, в котором будет информация:
- кто столкнулся (инициатор)
- с кем (цель)
- сообщение (на некоторые ивенты можно накинуть доп информацию о цели столкновения)