Jump to content
Nico480

Definir tamaño de un array desde el script

Recommended Posts

Hola como estan? Como puedo definir el tamaño de una array desde el codigo, supongamos que tengo un array GameObject:

Cita

public GameObject[] objeto;

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!

Share this post


Link to post
Share on other sites
Cita

public 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 UnityEditor, implementar ReorderableList o bien armar algo con ObjectField.

Share this post


Link to post
Share on other sites
hace 24 minutos, francoe1 said:

public 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 UnityEditor, implementar ReorderableList o bien armar algo con ObjectField.

Impecable! Si busco que empiece de 0, muchas gracias

Share this post


Link to post
Share on other sites

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

 

Edited by enelmenu

Share this post


Link to post
Share on other sites
16 hours ago, Nico480 said:

Como 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)

Share this post


Link to post
Share on other sites
7 hours ago, enelmenu said:

@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 :6_smile:

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...