// Use this for initialization void Start() { minX = GerenciarCamera.MinX() + 0.4f; maxX = GerenciarCamera.MaxX() - 0.4f; StartCoroutine("Instanciador"); }
// define quando e onde o objeto sera instanciado private IEnumerator Instanciador() { minX = GerenciarCamera.MinX(); maxX = GerenciarCamera.MaxX(); // define um tempo em segundos para instanciar o proximo objeto baseado em um numero // aleatorio entre o minSpawnTime e o maxSpawnTime spawnItem = Random.Range(minSpawnTime, maxSpawnTime); index = Random.Range(0, 8); probability = Random.Range(0, 6); if (probability <= 2) { index = Player.indexRandom; } while (previousIndex == index) { index = Random.Range(0, 8); } // espera ate spawnItem segundos para executar a proxima linha de codigo yield return(new WaitForSeconds(spawnItem)); positionX = Random.Range(minX, maxX); item = Instantiate(Itens[index], new Vector2(Random.Range(minX, maxX) , transform.position.y), Quaternion.Euler(0, 0, Random.Range(-30, 30))) as GameObject; previousIndex = index; // se o instanciador estiver a esquerda lance no sentido da direita // se o instanciador estiver a direita lance para a esquerda if (item.transform.position.x > 0) { //item.rigidbody2d.AddForce() obsoleto item.GetComponent <Rigidbody2D>().AddForce(new Vector2(-leftForce, upForce)); } else { //item.rigidbody2d.AddForce() obsoleto item.GetComponent <Rigidbody2D>().AddForce(new Vector2(leftForce, upForce)); } StartCoroutine("Instanciador"); }