Почему объект застревает в стене при отталкивании?

Всем привет, сделал бесконечное движение объекта и его отталкивание от стенок, но оно работает не всегда правильно. На закругленных углах (иногда даже у прямой стены) он просто застревает и перестает двигаться совсем, либо медленно двигается до точки, на которой прекращает движение. С чем это может быть связано и как это можно исправить?

private void FixedUpdate()
    {
        rb.velocity = direction * normalSpeed;
        lastDirection = direction;
    }

    private void OnCollisionEnter2D(Collision2D collision)
    {
        //Отталкивание от объектов.
        direction = Vector3.Reflect(lastDirection.normalized, collision.GetContact(0).normal);

Между объектами есть небольшое расстояние, но кружок будто бы прилепился к стене и двигается с ней, пока не столкнется с другим коллайдером: введите сюда описание изображения

под кружком есть объекты, которые также имеют коллайдеры, но коллизия между ними не считается, так как они имеют одинаковый слой (в настройках, для объектов на одном слое отключил коллизию). Что можно сделать, чтобы исправить эту ошибку и с чем она может быть связана?

Объект в общем масштабе:

введите сюда описание изображения


Ответы (0 шт):