Buenos dias.
Tengo una simple lista de objetos(flechas),el cual cuando aprieto la barra espaciadora va quitando uno a uno las flechas de la lista.
Esto va perfecto.Pero mi intención es que también me los quite visualmente osea desde el juego con un disable/delete lo que sea.
Pero no veo la manera.
Agradecería una ayuda.
Gracias
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class quitaflechas : MonoBehaviour
{
public List<GameObject> enemies;
void Awake()
{
enemies = new List<GameObject>();
foreach(GameObject enemy in GameObject.FindGameObjectsWithTag("flecha"))
{
enemies.Add (enemy);
}
}
void Update()
{
if(enemies.Count > )
{
if(Input.GetKeyDown (KeyCode.Space))
{
enemies.RemoveAt();
print (enemies.Count);
}
}
}
}
Hola, vos estas trabajando (segun el codigo) sobre el primer elemento todo el tiempo, entonces antes de eliminarlo de la lista (para no cambiar los ordenes de los demas) podes hacerlo no visible y luego quitarlo de la lista
if(Input.GetKeyDown (KeyCode.Space)) //esto va a pasar menos, tiene mas prioridad
{
if(enemies.Count > )
{
enemies[].blabla //aca le haces lo que quieras
enemies.RemoveAt();
print (enemies.Count);
}
}
saludos
edit: Los "cero" se fueron de vacaciones, dentro del [] y en el removeAt hay uno
Muchisimas gracias #lighbug , va de lujo asi queda el script final para futuras referemcias :)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class quitaflechas : MonoBehaviour
{
public List<GameObject> enemies;
void Awake()
{
enemies = new List<GameObject>();
foreach(GameObject enemy in GameObject.FindGameObjectsWithTag("flecha"))
{
enemies.Add(enemy);
}
}
void Update()
{
if (Input.GetButtonDown ("Fire1"))
{
if(enemies.Count > )
{
enemies [].SetActive(false); //aca le haces lo que quieras
enemies.RemoveAt();
}
}
Gracias!!