Noticias

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

Almacenar argumentos en array

Iniciado por Midgard, Septiembre 28, 2015, 09:53:59 PM

Tema anterior - Siguiente tema
Septiembre 28, 2015, 09:53:59 PM Ultima modificación: Septiembre 28, 2015, 09:54:52 PM por Midgard
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.

Pues yo creo que con otro bucle dentro del bucle 

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


Etiquetas: