Noticias

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

necesito ayuda con script

Iniciado por Bryan Murgas, Diciembre 20, 2016, 10:04:45 PM

Tema anterior - Siguiente tema
Diciembre 20, 2016, 10:04:45 PM Ultima modificación: Diciembre 21, 2016, 02:38:32 PM por pioj
Es este .
 

using UnityEngine;
using System.Collections;
public class Generador : MonoBehaviour {
    public GameObject coinP;
    private GameObject coinPC;
    public GameObject contenedor;
    private GameObject contenedorC;
    void Update ()
    {
        int xRandom = Random.Range (-8,8);
        int yRandom = Random.Range (-3,3);
        if (Input.GetKeyDown (KeyCode.Space)) 
        {
            
            coinPC = Instantiate(coinP);
            coinPC.transform.position = new Vector3(xRandom, yRandom, );
        }
    }
}

 
 
 
va como podran ver ese script me genera monedas aleatoreamente al precionar la bara espaceadora  
 
pero el problema es que en la jerarquia crea todos los objeos y quiero que cree un objeto vacio llamado contenedor y que ahi ce generen todas las monedas .
 
 
 
gracias.
 


using UnityEngine;
using System.Collections;
public class Generador : MonoBehaviour {
    public GameObject coinP;
    private GameObject coinPC;
    public GameObject contenedor;
    private GameObject contenedorC;
    public GameObject Parent;
    void Update ()
    {
        int xRandom = Random.Range (-8,8);
        int yRandom = Random.Range (-3,3);
     
        if (Input.GetKeyDown (KeyCode.Space))
        {
           
            coinPC = Instantiate(coinP);
            coinPC.transform.position = new Vector3(xRandom, yRandom, );
      if(Parent!=null)
            {
               coinPC.setParent(Parent);
            }
        }
    }
}

 
lo hice de cabeza, no se bien si las mayus de setParent o la sintaxis es la correnta, creo que si.
 
Espero que te sirva y suerte!

····>Desarrollando un videojuegos online-arcade para Android.


····>Programador en:C,C#,VB.net,PHP,HTML5,SQL,JS,Ruby.


····>Trabajando en: Desarrollo de paginas web y bushistudios.


                    ๑۩۞۩๑_(▀▄)KINGTRASE(▄▀)_๑۩۞۩๑ 



Kingtrase ya te dio la solucion, para agregar algo pondria los random dentro del if ya que no es necesario calcularlos si no se apreta space


Como comentario te diría que evites utilizar Instantiate en casos de este tipo, lee algo acerca de object pooling y aplica esta técnica

Cita de: musaranya date=1485361947Como comentario te diría que evites utilizar Instantiate en casos de este tipo, lee algo acerca de object pooling y aplica esta técnica
   


pero si quiere generar las monedas y dejarlas en un determinado lugar en que le beneficiaria object pooling?

Pensaba que las monedas se instanciaban como items que luego se recogen/destruyen

Cita de: musaranya date=1485364797Pensaba que las monedas se instanciaban como items que luego se recogen/destruyen
   


Ah claro, si fuera asi las podria generar aleatoriamente al comienzo y meterlas en la pool, despues con la tecla "Space" las va activando y desactivando cuando se recogen, algo asi?

Mira, por ejemplo este tipo lo explica muy bien (el de la primera respuesta):  http://answers.unity3d.com/questions/196413/gameobject-pool-to-avoid-performance-issues-in-ins.html
 
Todas las respuestas de este usuario suelen ser muy buenas, te puedes fiar de lo que dice :)
 
 
 
 
 
 
 
 
 
Cita de: lightbug date=1485365512Ah claro, si fuera asi las podria generar aleatoriamente al comienzo y meterlas en la pool, despues con la tecla "Space" las va activando y desactivando cuando se recogen, algo asi?
   


 

Por ejemplo a mi me convenia hacer eso cuando disparaba rafagas de lasers y despues de 10 segundos (si no colisionaron nada) se destruian. Entonces asi hago pooling me ahorra algunos cuadros dependiendo de cuan rapido la destruccion/instancia ocurra. el peor caso seria si tendria que destruir en cada cuadro (totalmente irreal xD), llamar mucho a Destroy y despues a Instantiate seria un problema. Como las rafagas ocurrian cada 1 segundo no habia practicamente diferencia, pero me ahoraba esos picos de performance, la tecnica es muy buena.
 
Si, al usuario ese lo conozco, es muy bueno.

Etiquetas: