Example #1
0
    void MakeOrbits(int electrons, int orbitCount)
    {
        int elRest = electrons;

        for (int i = 0; i <= orbitCount; i++)
        {
            GameObject orbit = new GameObject();
            orbit.name                    = "Orbit" + i;
            orbit.transform.parent        = transform;
            orbit.transform.localPosition = Vector3.zero;

            CircleLine myRing = Instantiate <CircleLine>(ring);
            myRing.SetOrbitCapacity(elAndO[i, 0]);
            myRing.SetElectronCount(elAndO[i, 1]);


            myRing.CreatePoints(orbitRadius * (i + 1));
            myRing.transform.parent        = transform;
            myRing.transform.localPosition = Vector3.zero;

            //Shell for Orbit
            GameObject Shell = Instantiate <GameObject>(pulseObj);
            Shell.transform.parent        = orbit.transform;
            Shell.transform.localPosition = Vector3.zero;
            float sr = (i + 1) * orbitRadius * 2f;

            Shell.transform.localScale = new Vector3(sr, sr, sr);
            //Electrons
            for (int j = 0; j < orbitThreshold[i]; j++)
            {
                Electron ele = Instantiate <Electron>(myElectron);
                ele.transform.parent = orbit.transform;
                float partinCircle = (float)j / orbitThreshold[i];
                ele.Arrange(i, orbitRadius, partinCircle);

                elRest--;
                if (elRest <= 0)
                {
                    return;
                }
            }
        }
    }