Hola, 1 -¿ alguien sabe como se puede hacer para que un enemigo cuando muera suelte cosas por ejemplo una poción de vida?
2- tambien me gustaria saber como se puede hacer para generar oleadas de enemigos, por ejemplo primero salen 4 enemigos y después cuando se eliminen esos enemigos salen otros 4 y así hasta que finalice las oleadas.
enemy
public GameObject[] items;
//tus posibles items
float life = 100;
void Update() {
...
if (life < 1) {
death();
}
}
void death() {
int objNum = (int)Random.Range (0, items.Length);
Instantiate (items[objNum], transform.position, transform.rotation);
Destroy(this.gameObject);
}
spawner
public float waveCountDown = 120f; //dos minutos
private float timer = 0f;
public int enemyCount = 4;//cuantos enemigos "spawnea" cada vez
public float radius = 10f;//radio donde se "spawnean" alrededor de este objeto
public GameObject enemy;//el enemigo
void Update() {
timer += Time.deltatime;
if (timer > waveCountDown) {
timer = 0;
spawn();
}
}
void spawn() {
for (int i = 0; i < enemyCount; i++) {//bucle (tantos enemigos como hayas puesto)
Vector3 pos = new Vector3(Random.Range(-radius, radius), 0f, Random.Range(-radius, radius));
//posicion aleatoria dentro de ese area
pos += transform.position; //añadir la posicion de este obj
Instantiate(enemy, pos, transform.rotation);//crear enemigo
}
}
ahi van dos fragmentos sencillos de codigo que hacen lo que dices
el primero suelta items al morir (un item, de entre una lista de items que le pongas)
el segundo crea 4 enemigos cada dos minutos en un area de 20*20 alrededor del objeto que lo posea...
los he hecho lo mas basico... obviamente se puede hacer todo lo complejo que quieras... que los items salgan como con un impulso... puedes instanciar tambien una explosion (hecha con particulas porejemplo)
...si quieres que el primero suelte mas de un item puedes hacer un bucle como en el segundo...
Cita de: Igor date=1532476558
enemy
public GameObject[] items;
//tus posibles items
float life = 100;
void Update() {
...
if (life < 1) {
death();
}
}
void death() {
int objNum = (int)Random.Range (0, items.Length);
Instantiate (items[objNum], transform.position, transform.rotation);
Destroy(this.gameObject);
}
spawner
public float waveCountDown = 120f; //dos minutos
private float timer = 0f;
public int enemyCount = 4;//cuantos enemigos "spawnea" cada vez
public float radius = 10f;//radio donde se "spawnean" alrededor de este objeto
public GameObject enemy;//el enemigo
void Update() {
timer += Time.deltatime;
if (timer > waveCountDown) {
timer = 0;
spawn();
}
}
void spawn() {
for (int i = 0; i < enemyCount; i++) {//bucle (tantos enemigos como hayas puesto)
Vector3 pos = new Vector3(Random.Range(-radius, radius), 0f, Random.Range(-radius, radius));
//posicion aleatoria dentro de ese area
pos += transform.position; //añadir la posicion de este obj
Instantiate(enemy, pos, transform.rotation);//crear enemigo
}
}
ahi van dos fragmentos sencillos de codigo que hacen lo que dices
el primero suelta items al morir (un item, de entre una lista de items que le pongas)
el segundo crea 4 enemigos cada dos minutos en un area de 20*20 alrededor del objeto que lo posea...
los he hecho lo mas basico... obviamente se puede hacer todo lo complejo que quieras... que los items salgan como con un impulso... puedes instanciar tambien una explosion (hecha con particulas porejemplo)
...si quieres que el primero suelte mas de un item puedes hacer un bucle como en el segundo...
Muchas gracias, me has ayudado un monton, saludos!