Advertisement
dantepw

Spawn de objetos aleatorios, UNITY2D

Aug 22nd, 2014
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using UnityEngine;
  2. using System.Collections;
  3.  
  4. public class SpawnMultipleObjects : MonoBehaviour {
  5.  
  6.     //verifica as coordenadas do Empty GameObject
  7.     public Vector3 startPosition;
  8.  
  9.    
  10.     //seleciona uma posicao X aleatoria
  11.     public float randomPosition;
  12.  
  13.     //aqui dentro eu coloco todos Sprites que meus personagens vao poder coletar! por enquanto eh so 1
  14.     public GameObject[] gameObjectSet;
  15.     //o gameObject da vez
  16.     private GameObject myObj;
  17.  
  18.     public float timeLeftUntilSpawn = 0f; //tempo que falta para o proximo spawn
  19.     public float startTime = 0f; //tempo total de jogo
  20.     public float secondsBetweenSpawn = 3f; //o tempo entre cada um spawn [de 2 em 2 segundos, 5 em 5, etc]
  21.     public float timeToDestroy = 0f; //seria o tempo de destruicao de cada objeto, mas ainda n funfa XD
  22.      
  23.  
  24.     void Start ()
  25.     {
  26.         //pega a posicao atual do objeto [nesse caso o Y e Z, pq o X vai ser random]
  27.         startPosition = transform.position;
  28.     }
  29.  
  30.     void SpawnRandomObject()
  31.     {
  32.         //ve quantos itens eu tenho a disposicao e seleciona 1 deles
  33.         int whichItem = Random.Range(0, gameObjectSet.Length);
  34.         //posicao aleatoria do X do gerador de itens! o numero eh em base do meu mapa
  35.         float randomPosition =  Random.Range (-8.807455f, 11.78655f);
  36.         //dizendo para o meu objeto qual e a proxima posicao dele [X aleatorio e Y & Z padrao!]
  37.         transform.position = new Vector3(randomPosition, startPosition.y, startPosition.z);
  38.         //criando meu objeto!!
  39.         myObj = Instantiate(gameObjectSet[whichItem]) as GameObject;
  40.         myObj.transform.position = transform.position;
  41.    
  42.     }
  43.  
  44.     // Update is called once per frame
  45.     void Update ()
  46.     {
  47.  
  48.         //contador para ver quanto tempo falta para o proximo spawn
  49.         timeLeftUntilSpawn = Time.time - startTime;
  50.         timeToDestroy = Time.time - startTime;
  51.  
  52.         //calculando quanto tempo falta
  53.         if (timeLeftUntilSpawn >= secondsBetweenSpawn)
  54.         {
  55.             startTime = Time.time;
  56.             timeToDestroy = Time.time;
  57.             timeLeftUntilSpawn = 0;
  58.             SpawnRandomObject();
  59.  
  60.             if (timeToDestroy >= 5)
  61.             {
  62.                 //timeToDestroy = Time.time;
  63.                 //timeToDestroy = 0;
  64.                 //Destroy (myObj);
  65.             }              
  66.         }
  67.     }
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement