прежде всего измените эту строку:
rb.MovePosition(transform.position + direction.normalized * speed);
на эту:
rb.MovePosition(transform.position + direction.normalized * speed * Time.fixedDeltaTime);
, и причина, по которой она замедляется, возможно, потому, что целевая позиция "Z" не равна "0 "(аналогично позиции игрока" Z ").