Jump to content
UnitySpain
enelmenu

Ayuda - Creacion elementos(variables) mixtos

Recommended Posts

Hola gente, como estan?.

Bueno nose si mis preguntas son medias boludas y basicas, pero ahora tengo un problema con creacion de varias variables diferentes del mismo tipo, para despues utilizarlas(no hace falta utilizar las variables creadas en otra clase, podria usarlas en una misma clase o metodo).

Bueno, mi duda principal es como hago para crear muchas variables mixtas del mismo tipo(GameObject en este caso) tal y como dice el titulo huehue.

Supongamos que necesito crear variables conforme valla agregando objetos en una lista que adentro tiene un array, bueno eso se obtiene facilongo, con un for bastante basico:
 

		//necesito obtener variables GameObject que se llamen  "plate"+(i+1)  eso
		//Ejemplo: GameObject plate1 = blabla
		for (int i = ; i < PlateList.Capacity; i++) {
			Debug.Log ("plate"+(i+1));
        	//Aca puedo crear cada variable GameObject, pero nose como nombrarlas
//Ejemplo:     	        GameObject "plate"(i+1); ---> en la primer vuelta va a crear GameObject plate1;
		}
		//necesito obtener variables GameObject que se llamen  "floor"+(z+1)+"_p"+(i+1)  eso
		//Ejemplo: GameObject floor2_p1 = blabla
		for (int i = ; i < PlateList.Capacity; i++) {
			for (int z = ; z < PlateList [i].Floor.Length; z++) {
				Debug.Log ("floor" + (z + 1) + "_p" + (i + 1));
                //Aca puedo crear cada variable GameObject, pero nose como nombrarlas
//Ejemplo:     	     	  	GameObject "floor"+(z+1)+"_p"+(i+1); ---> en la primer vuelta va a crear GameObject floor1_p1;
			}
		}
		//y yo poder usar aca por ejemplo:

//		floor2_p1.transform.position = Vector3.Lerp (floor1_p1.transform.position, new Vector3 (5.0f, 2.75f, 1.0f), timePlataform / speedPlataform);

ESOS EJEMPLOS ADENTRO DEL FOR NO SUCEDEN, ESTA MAL LA SINTAXIS, FUE SOLO UN EJEMPLO PARA QUE VEAN LO QUE NECESITO.

 

Algo bastante sencillito aunque no paresca, pero me esta costando mucho, pense en crear un string para dsp insertarlo en el nombre de la variable GameObject, pero no se puede, seguro va por ahi la mano pero nose que hacer, o sino convertir un string en GameObject lo cual se me acaba de ocurrir mientras escribo esto jajaja, de todas formas nose como convertir un string a GameObject, pero va por ahi la mano segurisimo. Si hay otra forma mas sencilla avisenme.

Tambien algo que tengo mucha intriga, si logro crear dichos GameObject en cada iteracion del for.... Cada iteracion siguiente, hace desaparecer el anterior?? creo que no, no tendria por que pasar... hmmm


Espero que se haya etendido(nunca supe escribir bien alla,halla,haya,(conosco aya nomas que es el mas facil))

Una abrazo, espero soluciones.

 

PD: de todas formas no se puede hacer asi por que lo que cree adentro de el for, no lo puedo usar en otro lado... alguna solucion?? u.u

Edited by enelmenu

Share this post


Link to post
Share on other sites

Hola enelmenu, mira ... no se te entiende nada :6_smile:

8 hours ago, enelmenu said:

Bueno, mi duda principal es como hago para crear muchas variables mixtas del mismo tipo(GameObject en este caso) tal y como dice el titulo huehue.

Crear variables mixtas se entiende como crear variables de distinto tipo, esa es la definicion de mixto, pero vos queres crear del mismo tipo? what? para que? que es lo que estas tratando de lograr?

 

8 hours ago, enelmenu said:

o sino convertir un string en GameObject 

No , eso no tiene ni el mas minimo sentido, por favor reformula toda la pregunta/post, no se entiende nada, pone dos renglones puntuales que es lo que queres hacer. Y si no estas buscando puntualidad y queres un consejo de como hacer algo hacelo mas extenso pero sin que las cosas se "te vayan ocurriendo mientras escribis" porque vos te entendes pero esto esta mas dificil que assembler.

9 hours ago, enelmenu said:

Tambien algo que tengo mucha intriga, si logro crear dichos GameObject en cada iteracion del for.... Cada iteracion siguiente, hace desaparecer el anterior?? creo que no, no tendria por que pasar... hmmm

Todo lo definido dentro de un "{  }" vive solo(tiene un alcance) dentro de eso, a no ser que crees una variable y reserves espacio en memoria con un new (Memory allocation) y asi no podes referenciarlo desde el mismo objeto pero si si lo guardas en un contendor, Ej:

List<GameObject> m_lista = new List<GameObject>(); //tamaño indefinido, arranca en cero y se va agregando

for( "n iteraciones" )
{

	GameObject objACrear = new GameObject(); //o GameObject("nombre")
	m_lista.Add(objACrear);	//La lista vive siempre y contiene LA REFERENCIA al objeto
}

Por supuesto el meter las cosas dentro de una lista es para tener objetos de tipo tal, y a la hora de usarlos es como "che, lista busca todos los objetos TAL y hacele tal cosa" o "busca todos tus objetos y hacele tal cosa" , no es para "che, lista busca el objeto X y hacele esto", aunque se puede hacer no se estila hacer eso.

Es decir, lo hace desaparecer? NO, quedan en memoria, en lo que se llama el "Heap", la cuestion es como vos los referencias, para eso estan los contenedores (que sea de paso si podes usar Listas usalas, son muchos mas versatiles que los arrays que son fijos, depende el caso por supuesto), o quizas no te interese referenciarlos, ejemplo, hace 20 iteraciones y crear 20 proyectiles. La joda es, si los creastes, quedan ahi dando vuelta sin funcion alguna y no podes luego usarlos luego para nada, eso es un epic fail.

Share this post


Link to post
Share on other sites

Jajajajajajaja soy un dilexico de mierda jajajaja

Mira mi objetivo es crear la cantidad de variables que tenga un array

ponele que tengo 4 arrays de algo y necesito crear 4 variables cada una que se llame distinto( para poder referirme a un array en especifico con la variable), ponele ir sumandole, variable1, variable2, variable3, variable4...
Intentar crear esas variables con un for, ya que yo desconosco la cantidad de mi array, por eso quiero usar un for.... 
Nose si me explico, basciamente crear una cantidad de variables definida con el for y darle nombres a cada una(obviamente nombres diferentes, sino se sobreescribenu)...

Esa informacion me sirve, bastante, gracias ya vere que hago, pero si lograste entender lo que quiero lograr, por ahi no me conviene usar un for, nose si me entendiste tirame la clave jajajaja.
Ah y lo de mixto, quise decir a variables de diferente nombre pero del mismo tipo, me exprese mal u.u

Edited by enelmenu

Share this post


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

Nose si me explico, basciamente crear una cantidad de variables definida con el for y darle nombres a cada una(obviamente nombres diferentes, sino se sobreescribenu)...

NO, el nomrbe no dice nada, es como si alguien nace y le ponen tu mismo nombre y de pronto dejaras vos de existir, nunca se van a sobreescribir, asi no funciona la programacion. Lo del los nombres es facil, vos en cada for tenes tu indice de iteracion, generalmente --> int i . Podes usar:

for(int i=0 ; i < array.Length ;i++)
{
	GameObject newObj = new GameObject("objeto " + i.toString());
}
                              
//Al final se creo:	"objeto 0" , "objeto 1", "objeto 2", ....
                              

Uno de los tantos ejemplos.

8 hours ago, enelmenu said:

Intentar crear esas variables con un for, ya que yo desconosco la cantidad de mi array, por eso quiero usar un for.... 

Eso no es tan cierto, es mas es todo lo contrario, sin saber la longitud del array no podes usar un for ya que no sabes cuantas iteraciones haces.

Share this post


Link to post
Share on other sites

Ahi estaa eso necesitaba!!, esa sintaxis nosabi que podia aplicarla asi

Ahora, lightbug said:

GameObject newObj = new GameObject("objeto " + i.toString());

Gracias!

Enrrealidad tranquilamente podes desconocer una cantidad de un array, para eso existe el ".Length" no?

Ahora, lightbug said:

Eso no es tan cierto, es mas es todo lo contrario, sin saber la longitud del array no podes usar un for ya que no sabes cuantas iteraciones haces.

Share this post


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

Enrrealidad tranquilamente podes desconocer una cantidad de un array, para eso existe el ".Length" no?

Claro, Length para un array, Count para una List

Share this post


Link to post
Share on other sites

Che @lightbug estube revisando y  GameObject newObj = new GameObject ("Player") y no es lo que necesito :/
Osea mira es algo simple, necesito crear variables, no objetos, osea crear variables tipo GmaeObject, y que esten vacias para yo manipular la variable q se creo con el nombre q me dio el for, el for me crea las variables y le da el numerito para identificar la variable, por eso decia lo de repetir nombre, si bien un GameObject puede ser repetido su nombre, las variables no pueden repetir su nombre, eso si que nace lo haces nacer a la variable, yo necesito q el for me haga nacer variables con nombres para identificarlas.

Cual es mi objetivo a todo esto?... bueno simplemente, voy a tener muchos objetos en mi array, y no puedo andar creando las variables, necesito q se me nombren y creen, y yo dsp les pueda dar un valor, simplemente como crear: GameObject objeto1; eso simplemente, que me cree eso por iteracion cambiando el numero nada mas. Es posible?, me conviene dejar de lado todo este pensamiento? y meterle con otro metodo??

Cita

Todo esto lo hago simplemente para no andar escribiendo:
 PlateList[1].Floor[1].transform.blablabla

yo necesito envez de escribir eso, escribir
GameObject floor2_p2 = PlateList[1].Floor[1];
floor2_p2.transform.blablabla

 

Share this post


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

Che @lightbug estube revisando y  GameObject newObj = new GameObject ("Player") y no es lo que necesito :/
Osea mira es algo simple, necesito crear variables, no objetos, osea crear variables tipo GmaeObject, y que esten vacias para yo manipular la variable q se creo con el nombre q me dio el for, el for me crea las variables y le da el numerito para identificar la variable, por eso decia lo de repetir nombre, si bien un GameObject puede ser repetido su nombre, las variables no pueden repetir su nombre, eso si que nace lo haces nacer a la variable, yo necesito q el for me haga nacer variables con nombres para identificarlas.

Cual es mi objetivo a todo esto?... bueno simplemente, voy a tener muchos objetos en mi array, y no puedo andar creando las variables, necesito q se me nombren y creen, y yo dsp les pueda dar un valor, simplemente como crear: GameObject objeto1; eso simplemente, que me cree eso por iteracion cambiando el numero nada mas. Es posible?, me conviene dejar de lado todo este pensamiento? y meterle con otro metodo??

Todo esto lo hago simplemente para no andar escribiendo:
 PlateList[1].Floor[1].transform.blablabla

yo necesito envez de escribir eso, escribir
GameObject floor2_p2 = PlateList[1].Floor[1];
floor2_p2.transform.blablabla

Ahh ok, ya se que es lo que queres pero es muy desprolijo hacerlo asi, osea la parte de ponerle el nombre a tu variable no se si lo podrias llegar a hacer desde una macro? ni idea... pero ya es rebuscar mucho. Hice lo mismo para un tileEditor que hice, queria sabes la fila y columna y en vez de crear varios gameobjects dentro de otro le puse el nombre (al gameObject creado ... OJO) algo como Object_02_05 y era fila 2 columna 5. Resulto muy util al final.

Igual desde el codigo jamas jamas te vas a referir a la "variable" floor2_p2 (o por lo menos a algo especifico) como pones, es desprolijo hacerlo asi, no se me ocurre ninguna situacion ahora mismo, te repito no se cual es tu objetivo de todo esto, es mejor empezar a iterar y mediante los indices del arreglos (uni o bidimensional) manejarte como corresponda (como el ejempl odel nombre que te puse arriba), o por lo menos es la principal razon de meterlos en un contenedor.

 

Share this post


Link to post
Share on other sites
hace 4 horas, enelmenu said:

Jajajajajajaja soy un dilexico de mierda jajajaja

Yo soy un disléxico y no te entiendo. Tenemos suerte de que @lightbug entiende muchos idiomas.

Share this post


Link to post
Share on other sites
Ahora, Miguel_Angel said:

Yo soy un disléxico y no te entiendo. Tenemos suerte de que @lightbug entiende muchos idiomas.

Bueno chee jajaja entendeme ami, estoy aprendiendo muchas cosas en poco tiempo, tengo tanto conocimiento encima en tan poco tiempo que cuando quiero explicar algo me hago el técnico pero termino diciendo cualquier boludes jajajajaja

Share this post


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

Yo soy un disléxico y no te entiendo. Tenemos suerte de que @lightbug entiende muchos idiomas.

 

16 hours ago, enelmenu said:

Bueno chee jajaja entendeme ami, estoy aprendiendo muchas cosas en poco tiempo, tengo tanto conocimiento encima en tan poco tiempo que cuando quiero explicar algo me hago el técnico pero termino diciendo cualquier boludes jajajajaja

Jaja todavia no entiendo bien el idioma enelmeneano, pero de a poco lo voy cazando

Share this post


Link to post
Share on other sites
hace 2 horas, lightbug said:

 

Jaja todavia no entiendo bien el idioma enelmeneano, pero de a poco lo voy cazando

Jajajajajajaja que culeado, @lightbug fíjate en proyectos que ya subí un avanze de lo q estoy haciendo por ahí entendes más todavía mi idioma jajajaja

Share this post


Link to post
Share on other sites

×
×
  • Create New...