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); }
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; } }