Jump to content
UnitySpain

Aceptamos donaciones vía Paypal.

UnitySpain.com es un servicio gratuito, pero mantener la Comunidad conlleva una serie de gastos.

Fondo Anual Unityspain: Donados 15,00€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales
Sign in to follow this  
marboxrem

Spawn por rondas

Recommended Posts

Hola, tengo una pregunta, yo tengo este script que me spawnea enemigos cada 3 segundos en 2 puntos(a mi eleccion) el cual se detiene cuando el player muere, lo que quisiera saber es que tengo que agregarle para que mi spawn me genere cierta cantidad de enemigos y despues de que mate a esa cantidad de enemigos estos me 

using UnityEngine;
using System.Collections;

public class SpawnControlado : MonoBehaviour
{

    public PlayerHealth playerHealth;       
    public GameObject enemy;                
    public float spawnTime = 3f;            
    public Transform[] spawnPoints;         


    void Start()
    {
        
        InvokeRepeating("Spawn", spawnTime, spawnTime);
    }


    void Spawn()
    {
        
        if (playerHealth.currentHp <= 0f)
        {
            
            return;
        }

        
        int spawnPointIndex = Random.Range(0, spawnPoints.Length);

        
        Instantiate(enemy, spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation);
    }
}

Edited by marboxrem

Share this post


Link to post
Share on other sites
Guest Alan xD

Para que se respawnen un numero de enemigos usa esto: 

using UnityEngine;
using System.Collections;

public class SpawnControlado : MonoBehaviour
{

    public PlayerHealth playerHealth;       
    public GameObject enemy;       
	public int enemies = 5;
    public float spawnTime = 3f;            
    public Transform[] spawnPoints;       

    void Start()
    {
        
        InvokeRepeating("Spawn", spawnTime, spawnTime);
    }


    void Spawn()
    {
        
        if (playerHealth.currentHp <= 0f)
        {
            
            return;
        }

        
        int spawnPointIndex = Random.Range(0, spawnPoints.Length);

        for(int e = 0;e<enemies;e++)
			Instantiate(enemy, spawnPoints[spawnPointIndex].position, spawnPoints[spawnPointIndex].rotation);
    }
}

 

Share this post


Link to post
Share on other sites

Yo trataría de almacenar en el script el número actual de enemigos vivos que hay en la escena, y que si éste llega a cero, se sume uno la ronda actual y se vuelva a llamar a la función que spawnea a los enemigos. No sé, tu pregunta ha quedado un poco en el aire porque no la has terminado xD

 

Edited by KaceEDP

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...