Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: ftejada en Junio 14, 2015, 11:56:04 PM

Título: ¿Cómo puedo acceder a array de tipo List<> desde otro script?
Publicado por: ftejada en Junio 14, 2015, 11:56:04 PM
Hola a todos, necesito acceder a un array de tipo List<GameObject> desde otro script para poder obtener datos (posiciones, etc,) de cada gameObject que contenga ese array List.
 
El tema es que he probado varias cosas, pero no logro acceder a esos GameObject que están almacenados en el Array de tipo List<> que está en otro script
 
Script_A

public static List<GameObject> ArrayList = new List<GameObject>();
public GameObject[] cars;
 
//En la función Start relleno el array con los GameObject
void Start{
   
   //Se rellena el array con los objetos "CARS" que haya
   cars = GameObject.FindGameObjectsWithTag ("Cars");
   //Y con esto Rellenamos la lista de todos los GameObjects que contiene el array cars
   for (int i = 0; i < cars.Length; i++)
   {
       AddGameObjectToArray(cars);         
   }
}
.......
.......
public void AddGameObjectToArray(GameObject objeto)
{
     ArrayList.Add (objeto);      
}

Y necesito poder acceder a esos GameObject que estan dentro de ArrayList (de tipo List), desde otro script.
 
Como ya he dicho he probado varias cosas pero no lo consigo....
 
Podriais darme algun consejo de como abordarlo o algun tutorial de como hacerlo. Pero no el de Unity ya que el de Unity utiliza  GameObject[], pero yo necesito poder incluir o quitar GameObject de las List ArrayList en tiempo de ejecucion.
 
La version de Unity que utilizo es la más reciente...
 
Espero vuestra respuesta, saludos y gracias de antemano.
Título: ¿Cómo puedo acceder a array de tipo List<> desde otro script?
Publicado por: francoe1 en Junio 15, 2015, 01:13:11 AM
Pero por que no simplemente utilizas un Arreglo simple GameObject[] o una Lista, pero no entiendo que intentas hacer!
 
Si es dinamico, simplemente con List<T> ya puedes agregar y eliminar, tu problema es que ArrayList  es un nombre reservado y cuando intentas acceder por herencia accede a ArrayList class, y no a tu Lista!
Título: ¿Cómo puedo acceder a array de tipo List<> desde otro script?
Publicado por: ftejada en Junio 15, 2015, 01:51:46 AM
Cita de: francoe1 date=1434323591Pero por que no simplemente utilizas un Arreglo simple GameObject[] o una Lista, pero no entiendo que intentas hacer!
 
Si es dinamico, simplemente con List<T> ya puedes agregar y eliminar, tu problema es que ArrayList  es un nombre reservado y cuando intentas acceder por herencia accede a ArrayList class, y no a tu Lista!
No utilizo simplemente GameObject[] por que necesito que sea dinamico.
 
Osea que el problema era simplemente que ArrayList es un nombre reservado??? Voy a probar con otro nombre a ver si si me deja acceder a los gameObjects... Me pegao unas cuantas horas y era esa chorradita... jajajaja!!!!
 
Cuando lo pruebe lo comento. Saludos y gracias por la ayuda.
 
EDITO:
Era ese el problema. Muchas gracias por todo.
Título: ¿Cómo puedo acceder a array de tipo List<> desde otro script?
Publicado por: pioj en Junio 15, 2015, 02:26:03 AM
@francoe1 (http://unityspain.com/profile/18127-francoe1/), parece que lo está haciendo para darle la lista de elementos ya desde el Editor, en lugar de programarla... Se puede ahorrar una de las dos, si quiere...
 
 
Coincido con él, vigila los nombres y no lo llames algo tan genérico como "ArrayList", busca un nombre algo más oportuno...
 
 
 
Otra cosa. Si quieres acceder a una lista o unos datos entre scripts que tienen un orden de ejecución concreto, te aconsejo que modifiques el ExecutionOrder. Es una opción para forzar e indicar el orden en el que se deben procesar los scripts. Está dentro del Project Settings, en el Editor.