Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Nico480 en Julio 06, 2017, 07:20:02 PM

Título: Definir tamaño de un array desde el script
Publicado por: Nico480 en Julio 06, 2017, 07:20:02 PM
Hola como estan? Como puedo definir el tamaño de una array desde el codigo, supongamos que tengo un array GameObject:
 



   
      public GameObject[] objeto;
   

[/quote]
 
En el inspector me va a mostrar el array y al ingresar el tamaño de elementos estos se van a crear pero como puedo hacer para definir el tamaño del array desde adentro del script?
 
Espero que se entienda mi duda, Saludos!
Título: Definir tamaño de un array desde el script
Publicado por: francoe1 en Julio 06, 2017, 08:15:32 PM



   
      public GameObject[] objeto = new GameObject[10];
   

[/quote]
 
El problema es la serialización, que puede que te lo inicialize a 0.
 
Frente a esto creo que lo mejor seria Unit***itor, implementar ReorderableList o bien armar algo con ObjectField.
Título: Definir tamaño de un array desde el script
Publicado por: Nico480 en Julio 06, 2017, 08:39:53 PM
Cita de: francoe1 date=1499364932public GameObject[] objeto = new GameObject[10];
   
   
      El problema es la serialización, que puede que te lo inicialize a 0.
   
   
      Frente a esto creo que lo mejor seria Unit***itor, implementar ReorderableList o bien armar algo con ObjectField.
   


Impecable! Si busco que empiece de 0, muchas gracias
Título: Definir tamaño de un array desde el script
Publicado por: enelmenu en Julio 07, 2017, 02:43:47 AM
Hola @Nico480 Para asignar un tamaño definido a un array es tan simple como asignarle el valor definido con un "new"...
Pero ojo...  Si queres un array estricto de pi a pa que no sea libre, podes usar una variable tipo static para reforsar tu restriccion y no un public.


Te dejo un ejemplo de las diferencias:
 

using UnityEngine;
using System.Collections;
public class Test_Array : MonoBehaviour {
public int[] arrayPublic = new int[2]; // Asigna 2 elementos.
static int[] arrayStatic = new int[2]; // Asigna 2 elementos.
// Antes de darle Play, compila y en el inspector establece un Size 3 a arrayPublic.
void Start()
{
   // Esto intenta darle valor al elemento 3 del array public y static.
   // Acordate que en programacion iniciamos conteos desde 0 y no desde 1.
   // 2 es el tercer elemento |0|1|2|.
   arrayPublic[2] = 3; // Idle
   arrayStatic[2] = 3; // Error
}
void Update() {
   // Intenta mostrar Elemento 3
   Debug.Log(arrayPublic[2]); // Idle
   Debug.Log(arrayStatic[2]); // Error
}
}

 
Como podes ver establecimos un valor x a public pero termino siendo otro numero, encambio static no
 
 
Título: Definir tamaño de un array desde el script
Publicado por: lightbug en Julio 07, 2017, 05:02:19 AM
Cita de: Nico480 date=1499361602Como puedo definir el tamaño de una array desde el codigo
   


GameObject[] array = new GameObject[*numero*];

 
Si lo vas a hacer desde el codigo tiene sentido que no sea public (ej queres una grilla de 32x32, ya sabes las dimensiones), si lo haces public para tenerlo en el inspector la ventaja que tenes es que vos elegis el tamaño (Ej queres meter puntos de control espaciales para que un enmigo patruye, q se yo)
Título: Definir tamaño de un array desde el script
Publicado por: enelmenu en Julio 07, 2017, 05:09:32 AM
@lightbug Que raro el resumiendo todas mis explicaciones JAJAJA teamo light!
Título: Definir tamaño de un array desde el script
Publicado por: lightbug en Julio 07, 2017, 05:11:43 AM
Cita de: enelmenu date=1499396972@lightbug Que raro el resumiendo todas mis explicaciones JAJAJA teamo light!
   


Jaj generalmente no leo nada de lo que haya arriba, solo el primer post y luego respondo
Título: Definir tamaño de un array desde el script
Publicado por: pioj en Julio 10, 2017, 12:17:11 PM
Esta duda es muy básica y no dependiente de Unity para nada. Por favor, sed consecuentes con el Tema, o empezaré a capar Posts de nivel Beginner....