private void Start()
    {
        if (transform.Find("tower"))
        {
            flyingRockHolder   = transform.Find("tower").Find("FlyingRockHolders");
            floatingRockHolder = transform.Find("tower").Find("FloatingRockHolders");

            floatingSideRocks.Clear();
            flyingRocks.Clear();

            foreach (Transform child in floatingRockHolder)
            {
                if (child.childCount > 0)
                {
                    floatingSideRocks.Add(child.GetChild(0).gameObject);
                }
            }

            foreach (Transform child in flyingRockHolder)
            {
                flyingRocks.Add(child.gameObject);

                float rotationSpeed = Random.Range(rockRotation.x, rockRotation.y);
                bool  direction     = (Random.value > 0.5f);
                rotationSpeed = (direction) ? rotationSpeed : -rotationSpeed;
                flyingRocksSpeeds.Add(rotationSpeed);
            }

            generateGalaxy = transform.Find("tower").Find("SpawnGalaxy").GetChild(0).GetComponent <GenerateGalaxy>();
        }
    }
    void GenerateBase()
    {
        DestroyObject();

        tempBase = Instantiate(parts.Base, transform);
        if (tempBase)
        {
            float baseSize = Random.Range(size.x, size.y);
            this.name                        = "StoneTower";
            transform.localScale             = new Vector3(baseSize, baseSize, baseSize);
            tempBase.name                    = "base";
            tempBase.transform.localPosition = Vector3.zero;
        }
        else
        {
            Debug.LogError("Failed to created base on " + this.name + " object.");
            DestroyObject();
            return;
        }

        TempTower = Instantiate(parts.Tower, transform);
        if (TempTower)
        {
            TempTower.name = "tower";
            TempTower.transform.localPosition = Vector3.zero;

            float towerHeight = Random.Range(height.x, height.y);
            TempTower.transform.localScale = new Vector3(1.0f, 1.0f, towerHeight);
        }
        else
        {
            Debug.LogError("Failed to created tower on " + this.name + " object.");
            DestroyObject();
            return;
        }

        TempGalaxy = Instantiate(parts.Galaxy, transform.Find("tower").Find("SpawnGalaxy"));
        if (TempGalaxy)
        {
            TempGalaxy.name = "galaxy";
            TempGalaxy.transform.localPosition = Vector3.zero;
            TempGalaxy.transform.localScale    = new Vector3(orbScale.y / 2, orbScale.y / 2, orbScale.y / 2);
            generateGalaxy = TempGalaxy.GetComponent <GenerateGalaxy>();
        }
        else
        {
            Debug.LogError("Failed to created galaxy on " + this.name + " object.");
            DestroyObject();
            return;
        }
    }