ComunidadID
Bienvenido a ComunidadID

¿Quieres promocionar tu videojuego?

Regístrate y publicalo 
en nuestros foros!


No estás conectado. Conéctate o registrate

Unity2D Programación C# - Respawn Automatico e Infinito

    

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

Mart


ADMINISTRADOR
ADMINISTRADOR
Después de buscar mucho por internet al fin encontré la solución a este ejemplo que traigo.

Usando de base el [Tienes que estar registrado y conectado para ver este vínculo] en el que un objeto que caía desde arriba al colisionar suelo se destruia.
En este ejemplo lo que hacemos es que dicho objeto, al destruirse, se vuelve a crear otro objeto igual desde arriba para que caiga otra vez y se vuelva a destruir así infinitamente.

LINK: [Tienes que estar registrado y conectado para ver este vínculo]



Para ello necesitamos crear un Empty vació que sera el encargado de tener el script que Respawnea los cubos una vez son destruidos.

Para ellos hemos creado el Empty justo encima de la plataforma suelo con el siguiente script:

Código:
using UnityEngine;
using System.Collections;

public class CubeCreator : MonoBehaviour {

   public int contador = 0;  //declaramos un INT para que nos haga de contador del objeto creado.
   
   public Transform CubePrefab;

   // Use this for initialization
   void Start () {

   Instantiate (CubePrefab, transform.position, transform.rotation);
      contador ++;  // Cuando se crea el primer cubo al iniciar el juego, el contador suma +1
   }
   
   // Update is called once per frame
   void Update () {

      if (contador == 0){  //Crearmos un IF para que cree un nuevo cubo solo cuando el contador sea igual a 0

         Instantiate (CubePrefab, transform.position, transform.rotation);
         contador++;  //Al igual que antes, cuando el contador sea igual a 0 se creara otro cubo, entonces sumamos +1 al contador para que no cree mas cubos.
      }

   }

   

}

Este codigo lo que hace es crear un primer cubo al iniciar el juego y sumar a su contador +1.
Mas abajo tenemos un IF que comprueba si el contador es igual a 0. Si es igual a 0 creara otro cubo.


Luego en el codigo del cubo que ya teniamos creado del ejemplo anterior nombrado mas arriba, lo que vamos a hacer es añadir una nueva linea despues de la linea que destruye los cubos:

Código:
GameObject.Find("GeneradorDeCubos").GetComponent<CubeCreator>().contador -= 1;

Esta linea lo que hace es buscar el objeto "GeneradorDeCubos" (asi es el nombre que yo le puse al "Empty vacio") y dentro de ese objeto capturamos el script "CubeCreator" (que es asi como yo llame a dicho script), y por ultimo, añadimos la variable que queramos modificar. En nuestro caso, contador. Luego le decimos que reste el valor de 1.

De ese modo cuando el cubo se destruya se restara al contador -1 y el otro script podra crear otro cubo ya que su IF detectara que el contador es igual a 0.

Eso es todo. Espero que sirva de ayuda.

Saludos!

http://www.comunidadid.com

Zonacas


ADMINISTRADOR
ADMINISTRADOR
+R

Aplauso


_________________
http://oskystudios.wix.com/osky-studios

Mart


ADMINISTRADOR
ADMINISTRADOR
Gracias! Very Happy

http://www.comunidadid.com

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

    

Permisos de este foro:
No puedes responder a temas en este foro.