Jump to content
UnitySpain

Aceptamos donaciones vía Paypal.

UnitySpain.com es un servicio gratuito, pero mantener la Comunidad conlleva una serie de gastos.

Fondo Anual Unityspain: Donados 15,00€ de 150,00€

  • Servidor: Dominio.com y Hosting Web
  • Mantenimiento de los Foros
  • Contenido y Servicios Extras
  • Mantenimiento para Redes Sociales
rafaelrfz

Activar varios objetos en array GameObject

Recommended Posts

Hola a todos.

He hecho un array GameObjects para colocar varios objetos de la escena, y para cuando un evento suceda activar algunos elementos del array.

Como son muchos, demasiados, es demasiado hacer linea por linea

ArrayObjetos[0].SetActive(true);

ArrayObjetos[1].SetActive(true);......

Me gustaria poder en una linea llamar a los que necesito y activarlos, pero no encuentro información y no se si sea posible.

 

Gracias por ayuda.

Share this post


Link to post
Share on other sites

SI sabes la posición del GO que tienes que cambiar, puedes usar otro array que contenga las posiciones y así solamente usar un foreach del tipo

foreach(int pos in ArrayPosiciones)
{
ArrayObjetos[pos].SetActive(true);
}

Puede que haya alguna manera más fácil, pero estoy recién levantado y no se me ocurre nada

Edited by zeus1200

Share this post


Link to post
Share on other sites

La respuesta de zeus1200 es perfectamente válida pero también se puede recorrer el array de objetos directamente:

foreach(var objeto in ArrayObjetos)
    objeto.SetActive(true);

 

En caso de que quieras sólo activar algunos basándote en una condición:


foreach(var objeto in ArrayObjetos.Where(o => o.transform.position.y > 7))
    objeto.SetActive(true);

 

De todas formas, esto es un tema de programación básica y programar juegos es una especialización. Aquí no existen los atajos, primero hay que aprender a programar (programación básica) y luego la especialización, en este caso juegos.

Edited by elanguido

Share this post


Link to post
Share on other sites

Tener que ir línea por línea constantemente no, pero si los objetos que tienes que activar, es por una lógica no predecible, sí vas a tener que ir repitiendo algo de código.

Yo pienso que una solución podría ser que crees un script a parte con función que active 1 gameobject en la casilla X de ese Array, la X se la pones manualmente en el inspector donde necesites, Y después, pues le pones tantos scrips al trigger como game objects necesites. (Que tienes que activar 3, pues le pones 3, que son 6, pues le pones 6, que es todo el array menos 3 piezas, haz lo que te han dicho los compañeros arriba. XD ).

Share this post


Link to post
Share on other sites

×
×
  • Create New...