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