Noticias

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

Definir tamaño de un array desde el script

Iniciado por Nico480, Julio 06, 2017, 07:20:02 PM

Tema anterior - Siguiente tema
Julio 06, 2017, 07:20:02 PM Ultima modificación: Julio 07, 2017, 12:41:51 AM por pioj
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!

Julio 06, 2017, 08:15:32 PM #1 Ultima modificación: Julio 07, 2017, 12:42:01 AM por pioj



   
      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.

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

Julio 07, 2017, 02:43:47 AM #3 Ultima modificación: Julio 07, 2017, 02:54:23 AM por enelmenu
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
 
 

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)

@lightbug Que raro el resumiendo todas mis explicaciones JAJAJA teamo light!

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

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....

Etiquetas: