День добрый, понимаю, что вопрос довольно легкий, но чет парбсь с ним уже давно, почему лимиты не работают?
_movePosition = new Vector2(_speed * Time.deltaTime, _rigidBody2D.velocity.y);
transform.Translate(new Vector2(Mathf.Clamp(_movePosition.x, -5, 5), _movePosition.y));