Как можно сделать столкновения в 2д, чтобы объекты не входили друг в друга?
Метод transform.Translate перемещает объект игнорируя физический движок (вдавливая в стену), а после этого физический движок пытается что-то предпринять. Чтобы физика просчитывалась как нужно, следует использовать методы в rigidbody2D для толкания персонажа, как вы это делаете в случае пробела. И не стоит использовать вместе прямое перемещение через transform.Translate и физику твердых тел, иначе будете получать именно такие проблемы.
Создать Physic Material в проекте с помощью Create -> PhysicMaterial, затем добавить коллайдеру в свойстве Material этот материал.