Делаю игру, как дудл джамп. Есть персонаж и платформы.
Хочу сделать, когда он летит вверх - игнорировать столкновения с платформами.
Придумал что когда скорость по Y больше нуля, игнорируем столкновения со всеми платформами. Храним их в массиве, пробегаем по ним и говорим IgnoreCollision() или отключаем коллайдер.
Однако как игнорировать те столкновения, которые происходят если у меня у персонажа уже отрицательная скорость (летим вниз), но посередине другой платформы? Ну т.е. скорость изменилась на отрицательную когда персонаж и платформа были наложены друг на друга. Как проверить расстояния до платформ, и не сталкиваемся ли мы с ними.
Что никто под юнити не кодит?
не знаю как на Unity) - просто добавьте проверку высоты над платформой - если выше H над ней - включаем столкновения - ниже - столкновения нет - проваливаемся
P.S. проверить высоту можно через Physics2D.Raycast
Еще можно попробовать вариант расположить под платформой триггер. Как только перс попадает в триггер, отключается платформа над ним и включается обратно когда он пролетел и платформу и триггер.
Тема в архиве.