Beispiel #1
0
    public void CreateNewProton()
    {
        if (QuantProtons == ProtonsMax)
        {
            return;
        }

        GameObject newProton = Instantiate(ProtonObj, Vector3.zero, Quaternion.identity) as GameObject;

        newProton.transform.SetParent(gameObject.transform);
        Particulas.Add(newProton);
        QuantProtons++;

        quantParticulas = Particulas.Count;

        float             radius = 0f;
        List <GameObject> lista  = new List <GameObject>();

        if (quantParticulas > 1 && quantParticulas <= 8)
        {
            radius = 0.15f;
            lista  = Particulas.GetRange(1, quantParticulas - 1);
        }
        else if (quantParticulas > 8 && quantParticulas <= 21)
        {
            radius = 0.30f;
            lista  = Particulas.GetRange(8, quantParticulas - 8);
        }
        else if (quantParticulas > 21 && quantParticulas <= 50)
        {
            radius = 0.45f;
            lista  = Particulas.GetRange(21, quantParticulas - 21);
        }
        else if (quantParticulas > 50 && quantParticulas <= 90)
        {
            radius = 0.6f;
            lista  = Particulas.GetRange(50, quantParticulas - 50);
        }

        for (int i = 0; i < lista.Count; i++)
        {
            float   angle       = i * Mathf.PI * 2f / lista.Count + 1;
            Vector3 newPosition = new Vector3(Mathf.Cos(angle) * radius, Mathf.Sin(angle) * radius, 0f);
            lista[i].GetComponent <ParticulaScr>().posicao = newPosition;
        }
    }