У нас осталась одна небольшая проблема - если вы заставите Ruby бросить шестеренку, и она ни с чем не столкнется, то шестеренка вылетит за пределы игровой сцены и будет лететь бесконечно! По ходу игры это может привести к проблемам с производительностью, если вдруг у вас 500 шестерёнок выйдут за пределы игровой сцены. Чтобы исправить это, нужно просто проверить расстояние шестеренки от центра игрового мира. Если это расстояние станет слишком большое, например, больше 100 для нашей игры, то нужно уничтожить игровой объект шестеренки. Добавим эту проверку в метод Update в скрипте Projectile: void Update() { if(transform.position.magnitude > 100.0f) { Destroy(gameObject); } } Как мы уже говорили, положение можно рассматривать как вектор, начало которого находится в центре игрового мира, а конец вектора в центре игрового объекта шестеренки. Таким образом длина этого вектора, которая вычисляется при помощи метода magnitude, это есть расстояние