IEnumerator resetParticle(Particulas particles)
    {
        yield return(new WaitForSeconds(particles.tempo));

        particles.particle.gameObject.transform.parent   = null;
        particles.particle.gameObject.transform.position = _positionPattern;
        particulas.Add(particles);
    }
    public void getParticula(string name, Transform position)
    {
        Particulas aux = particulas.Find(x => x.nome.ToLower() == name.ToLower());

        aux.particle.gameObject.transform.parent   = position;
        aux.particle.gameObject.transform.position = aux.posicaoRelativa;
        aux.particle.Play();
        StartCoroutine(resetParticle(aux));
        particulas.Remove(aux);
    }
Beispiel #3
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;
        }
    }