Все еще доделываю игру
После людума передо мной встал выбор, вернуться к доработке движка и погрязнуть в переписывании физики на пару месяцев или еще немного позаниматься игрой и развить механики. Я выбрал второй вариант. В конце концов я пишу движок чтобы делать игры.
Одна только проблема не давала мне покоя. Если персонаж прыгнет находясь под платформой, то он ударится об нее головой. Обычно, платформеры позволяют игроку запрыгивать на платформу снизу, то есть платформа вроде как и твердое тело на котором можно стоять, но в то же время пропускает сквозь себя объекты в определенном направлении.
Я пока плохо представляю как это сделать правильно и хочу поскорее продолжить писать игру, поэтому сделал специальную костыльную версию движка. В ней я навтыкал дополнительных условий в физическую систему, где я проверяю нужно ли как-то разрешать коллизию и раздвигать объекты или нет.
Теперь если объект с компонентом RigidBody обладает свойством isPlatform и возникает коллизия с другим объектом, вектор движения которого направлен вверх, то такая коллизия пропускается и будет игнорироваться до тех пор, пока объекты не разойдутся в стороны и возникнет событие CollisionLeave.
Напомню, что все обновления можно посмотреть на страничке игре.