Jump to content
UnitySpain
ramunda

Borrar/desactivar objeto de lista(Resuelto)

Recommended Posts

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);

			}
		}
	}
}

 

 

Edited by pioj
uso correcto de los tags

Share this post


Link to post
Share on other sites

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

Edited by lightbug

Share this post


Link to post
Share on other sites

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!!

Share this post


Link to post
Share on other sites

×
×
  • Create New...