В обновлении, которое работает в каждом кадре, ваш код проверяет, равна ли позиция чему-либо, и, если нет, добавляет скорость к игровому объекту.
Если вы хотите, чтобы это происходило при нажатии кнопок, лучше использовать Input.getkeydown событие.
например:
void Update()
{
if (Input.GetKeyDown(KeyCode.RightArrow))
{
run = 1f;
}else
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
run = -1f;
}
else
{
run = 0f;
}
rb.velocity = new Vector2(run, transform.position.y);
}