private void createMiniAsteroid() { if (curDivision == maxDivision) //we can divide an asteroids a limited number of times { return; } GameObject newAsteroid = (GameObject)Instantiate(gameObject, transform.position, transform.rotation); //setting scale and velocity Rigidbody newAsteroidRb = newAsteroid.GetComponent <Rigidbody> (); Vector3 newAsteroidsScale = newAsteroidRb.transform.localScale; newAsteroidRb.transform.localScale = newAsteroidsScale * 0.5f; //halve the size newAsteroidRb.velocity = getRandomVelocity(); //changing numDivision property of created asteroid to limit generation of new ones AsteroidController newAsteroidControllerScript = (AsteroidController)newAsteroid.GetComponent(typeof(AsteroidController)); newAsteroidControllerScript.setNumDivision(curDivision + 1); }