При движении одного объекта вверх, второй, стоящий на нем, начинает дергаться, немного проходя через текстуру [Unity 2D]

Видео с проблемой

Движение платформы задал в FixedUpdate, функцией

transform.Translate(new Vector3(0, speed, 0));

У самого игрока я поставил:

Collision Detection -> Continuous

Interpolate -> Interpolate

(Не уверен, что они на что-то повлияли)

При обычном движении такого не замечал

Edit 1: Заменил FixedUpdate на обычный Update И умножил вектор на Time.deltaTime и на 200

transform.Translate(new Vector3(0, speed, 0) * Time.deltaTime * 200);

Это замедлило сам "лифт", но теперь выглядит все гораздо плавнее. Только все равно игрок попадает в текстуру немного. Чем выше скорость, тем больше игрок попадает в текстуру.

Это можно как-то исправить или придется с этим смириться?(кликабельно)

Вот, что происходит, если увеличить скорость в 10 раз

Edit 2:

Решено:) Спасибо Максим Фисман и Yaroslav

Обратно вернул FixedUpdate

Вместо

transform.Translate(new Vector3(0, speed, 0));

Поставил

rb.MovePosition(transform.position + new Vector3(0, speed, 0) * Time.deltaTime * speed2);

Инспектор у "лифта"

Инспектор у "лифта"


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