Hola chicos.¿Hay alguna manera de almacenar los argumentos de una clase dentro de un array, para poder cargarlos despues mediante un bucle de manera sistematizada? En mi ejemplo son sólo 4 argumentos pero podrían ser 40.Tengo una clase de objeto, "objeto_class" para mi inventario de mi juego. Esta clase contiene los argumentos y el construcctor necesario para generar cualquier objeto.Como veis, tengo 4 argumentos en mi clase "objeto_class"
public class objeto_class{
public int id; //1º argumento
public string nombre;//2º argumento
public string descripcion;//3º argumento
public int cantidad;//4º argumento
public objeto_class(int idd,string nom,string desc,int cant){
id = idd;
nombre = nom;
descripcion = desc;
cantidad = cant;
}
}Los "objetos_class" los tengo almacenados dentro de una array de objeto_class llamada "array_objeto_class". Las casillas de mi inventario estan creadas con un prefab con un UI objeto que contiene 4 hijos, el cual lo instancio con un "for" 16 veces, dándome 16 casillas.
casilla_prefab-------tiene 4 hijos donde quiero que carguen los argumentos> 1º hijo TEXTO ID del objeto (esto cargaría el valor del argumento int id)>2º hijo TEXTO Nombre del objeto (esto cargaría el valor del argumento string nombre )>3º hijo TEXTO Descripcion del objeto (esto cargaría el valor del argumento string descripcion)>4º hijo TEXTO Cantidad del objeto (esto cargaría el valor del argumento cantidad )Su tag es "casilla_estadisticas"Las casillas las busco con sus TAGs y las meto dentro de un array de GameObject.
GameObject[] array_cas = GameObject.FindGameObjectsWithTag("casilla_estadisticas");// Busco todas las casillas con el mismo tag, y las meto en un array de GameObject
for(int i = 0; i < array_cas.Length; i++){ //con este for quiero poner valor a los hijos de las casillas que leen esos valores de los argumentos de las clases objeto_class almacenadas en array_object_class
array_cas.transform.GetChild(uno de los 4 hijos).GetComponent<Text>().text = array_objeto_class.ARGUMENTO ; //<<---¿como puedo acceder a los argumentos de manera ciclica?, ya que no puedo poner "ARGUMENTO"
}; Gracias por todo.
Te creas una clase para los argumentos y pasas la referencia de la clase. Si quieres copia, pues un copy constructor, o sea copiar los valores de la clase a los campos internos.
Cita de: iRobb date=1443475335" data-ipsquote="" data-cite="iRobb" class="ipsQuoteTe creas una clase para los argumentos y pasas la referencia de la clase. Si quieres copia, pues un copy constructor, o sea copiar los valores de la clase a los campos internos.
¿Me puedes poner un ejemplo sobre lo que acabas de exponer iRobb ?, no hace falta que sea con mi código...empecé C# de manera autodidacta y hay cosas que pueden ser de parbulario y no se hacer...
De memoria:
public class cParameters {
string id1;
int i2;
bool bPasa;
}
public class c {
private cParameters parameters;
public c(cParameters p) {
this.parameters.id1 = p.id1;
this.parameters.i2 = p.i2;
this.parameters.bPasa = p.bPasa;
}
}