Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Alex en Octubre 03, 2018, 06:44:23 AM

Título: Instanciar todos los objetos dentro de []
Publicado por: Alex en Octubre 03, 2018, 06:44:23 AM
Alguien me puede ayudar? estoy intentado hacer que todos mis gameobjects que están dentro de [] se importen a mi escena, para eso uso algo como esto:
 

public GameObject[] regalos;
public void start
{
instantiate (regalos[0], transform.position, transform.rotation);
}

 
el problema es que solo se importa el objeto numero 0, alguna forma de importar todos a la vez?
 
el otro problema es que, cuando quiero desactivar en algún momento esos regalos, se desactivan en la carpeta del proyecto, no dentro del juego, los regalos están puestos en las casillas de [] (sea regalo 0,1,2) opino que desde la carpeta de proyecto al parecer cuando son instanciados pierden relación con los que están en la "jerarquía" y los de "Proyecto" parece como si fueran diferentes, yo quiero que tengan relación los dos, intente usar el resources.load pero no logre nada, alguien puede explicarme un poco como puedo solucionarlo?
Título: Instanciar todos los objetos dentro de []
Publicado por: leocub58 en Octubre 03, 2018, 10:39:06 AM
Con un bucle for
 
for(int i = 0; i < regalos.Lenght; i++){
 

instantiate (regalos, transform.position, transform.rotation);

 
}
 
 
 
Lo he escrito así a ojo, revisalo bien.
Título: Instanciar todos los objetos dentro de []
Publicado por: debug en Octubre 03, 2018, 10:58:17 AM

public GameObject[] regalos;
public void Start ()
{
    foreach (GameObject regalo in regalos)
    {
    Instantiate (regalo, transform.position, transform.rotation);
    }
}

 
 
Título: Instanciar todos los objetos dentro de []
Publicado por: Alex en Octubre 03, 2018, 05:15:16 PM
Gracias! ya logre instanciarlos, pero cuando ya están en el juego no interactuan, por ejemplo cuando las desactivo desde el mismo script, se desactivan pero los de la carpeta, no los que fueron instanciados el la escena, alguna idea de lo que pasa?
Título: Instanciar todos los objetos dentro de []
Publicado por: lightbug en Octubre 03, 2018, 06:19:42 PM
Cita de: Alex date=1538579716Gracias! ya logre instanciarlos, pero cuando ya están en el juego no interactuan, por ejemplo cuando las desactivo desde el mismo script, se desactivan pero los de la carpeta, no los que fueron instanciados el la escena, alguna idea de lo que pasa?
   


Seguro sea porque no hay conexion o referencia entre tu arreglo de GameObject con los GameObject instanciados. Podrías usar un array pero pongo un ej con una List.
 

public GameObject[] regalos;
List<GameObject> regalosEscena = new List<GameObject>();
public void Start ()
{
    foreach (GameObject regalo in regalos)
    {
       GameObject instanciado = Instantiate (regalo, transform.position, transform.rotation);
  regalosEscena.Add( instanciado );
    }
}
 
 
void Desactivar()
  {
     foreach (GameObject regalo in regalosEscena)
       regalo.SetActive( false );
   
  }