Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Borrar/desactivar objeto de lista(Resuelto)

Iniciado por ramunda, Junio 10, 2017, 12:57:23 PM

Tema anterior - Siguiente tema
Junio 10, 2017, 12:57:23 PM Ultima modificación: Junio 11, 2017, 10:06:05 PM por pioj
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);
      }
   }
}
}

 
 
 
 

Junio 10, 2017, 01:59:42 PM #1 Ultima modificación: Junio 10, 2017, 02:00:53 PM por lightbug
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!!

Etiquetas: