Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: kalm97 en Noviembre 16, 2015, 05:17:53 PM

Título: Disparar projectil
Publicado por: kalm97 en Noviembre 16, 2015, 05:17:53 PM
como ago para que el clon cuando aga spawn se mueva hacia delanteVoid Update(){if (Input.GetButtonDown ("Fire1")) {              shoot();        }}void shoot(){
        GameObject clone;
        if (projectile) {        
            clone = Instantiate (projectile, transform.position, transform.rotation) as GameObject;
            
        }
    } Grasias de antemano
Título: Disparar projectil
Publicado por: mrpacogp en Noviembre 16, 2015, 05:28:54 PM
Pues el clon tiene que llevar un script que le diga que hacer, en caso de que quieras ir hacia delante, cosa que no haces con el uso correcto de la gramática, utiliza vector3.forward.
Título: Disparar projectil
Publicado por: kalm97 en Noviembre 16, 2015, 05:51:38 PM
le puse el forward...void shoot(){
        Rigidbody2D clone;
        if (projectile) {        
            clone = Instantiate (projectile, transform.position, transform.rotation) as Rigidbody2D;
            transform.Translate(Vector3.forward * Time.deltaTime, Camera.main.transform); // Aqui le digo que se mueva 
            
        }
    }No ocurre nada....
Título: Disparar projectil
Publicado por: juanma_teso en Noviembre 16, 2015, 06:05:43 PM
Se mueve pero el objeto que tiene el script, no el clone. Lo que necesitas es añadirle un script al proyectil que se mueva desde el momento en el que se instancia hasta que se destruya:
void Start ()
{
    Destroy(gameObject, 3);
}
void Update ()
{
    transform.Translate(tranform.forward);
}
Y no es lo mismo Vector3.forward (0,0,1) que transform.forward (vector diferente a 0,0,1)
Título: Disparar projectil
Publicado por: kalm97 en Noviembre 16, 2015, 06:10:48 PM
me coloca el 
transform.Translate(tranform.forward);
 el transform,forward en rojo como error...
Título: Disparar projectil
Publicado por: juanma_teso en Noviembre 16, 2015, 09:21:06 PM
Había escrito mal transssssform 
Título: Disparar projectil
Publicado por: kalm97 en Noviembre 17, 2015, 12:32:52 AM
se mueve en eje Z y si lo cambio a right solo se mueve a la derecha   ayudenme voy dias sin dormir....
Título: Disparar projectil
Publicado por: juanma_teso en Noviembre 17, 2015, 03:43:29 PM
Pues fíjate si el clon esta rotado, debería funcionar, sino prueba a girar tu mismo el proyectil desde el editor y me dices si sigue yendo en el eje z.
Título: Disparar projectil
Publicado por: kalm97 en Noviembre 17, 2015, 04:20:04 PM
si lo ago con forward y lo giro 135 grados cambia de sentido y si le pongo right y le ago a 90 cambia el sentido... pero a 135 apenas se ve el grafico y a 90 no se ve  tendria que girar en el eje x para cuando se gire cambie,  pero no hay una forma de que cuando el personaje este a la derecha en el sript se active un if que se mueva a la derecha y cuando el personaje este a la izquierda aya otro if en los update que diga a la izquiersa.??? 
Título: Disparar projectil
Publicado por: juanma_teso en Noviembre 17, 2015, 04:42:37 PM
Eso es lo que tienes que pensar y esos son los planteamientos que se hacen antes de empezar a escribir, tú mismo te estás dando la respuesta, para saber cuándo está mirando a cada lado fíjate en qué cambia en tu trasform, supongo que lo que cambiará será la rotación del objeto, si la rotación en el eje X es mayor que A o menor que B o que esté entre C y D... etc. Puedes poner las condiciones que quieras!!El transform.forward debería funcionar, seguramente tengas algún fallo haciendo la instancia, o tal vez no rotas el objeto que instancia el proyectil. Son fallos que tienes que ver tú Aún así sigue echándole cabeza, que todos empezamos igual...
Título: Disparar projectil
Publicado por: kalm97 en Noviembre 17, 2015, 05:11:26 PM
le ise asi...if (Input.GetKeyDown (KeyCode.D)) {
            this.transform.Rotate (Vector3.up, 180f);
            right = true;
        }
        if(Input.GetKeyDown(KeyCode.A)){
            this.transform.Rotate (Vector3.up, -180f);
            right = false;
        }y puse en el del projectil... void Start () {
        player = GameObject.FindGameObjectWithTag ("Player").GetComponent<Player> ();
        Destroy(gameObject, T);
    }
    void Update (){    
        if (!cambio) {
        player.right = true;
        shootR();        
        }
        if(cambio){
        player.right = false;
        shootL();
        }
    }
    void shootR(){
        transform.Translate (Vector3.right * Time.deltaTime, Camera.main.transform);
    }
    void shootL(){
        transform.Translate (Vector3.left * Time.deltaTime, Camera.main.transform);
    } pero no funciona se sigue moviendo en right creo q estoy mal en el sript del personaje me puedes decir en q estoy mal??
Título: Disparar projectil
Publicado por: ACarranza en Noviembre 17, 2015, 11:52:28 PM
[quote author=kalm97" data-ipsquote-contapp="forums" data-ipsquote-contenttype="forums" data-ipsquote-contentclass="forums_Topic" data-ipsquote-contentid="34435" data-ipsquote-contentcommentid="123607">se mueve en eje Z y si lo cambio a right solo se mueve a la derecha http://unity3d.com/es/learn/tutorials/topics/scriptingdeja tu proyecto aun lado temporalmente y estudia los tutos que hay aqui, y al final creeme que podras hacer lo que pides y mucho mas :) Título: Disparar projectil
Publicado por: juanma_teso en Noviembre 18, 2015, 01:26:52 PM
Seguramente siempre entre en el mismo condicional, pon un Debug en el update del proyectil para saber si cambio se vuelve false en algún momento.
Título: Disparar projectil
Publicado por: kalm97 en Noviembre 18, 2015, 06:06:56 PM
en el player me di cuenta que no cambia el bool, inicie el juego para comprobar en la pantalla del script y no cambia a false o a true los bool no se si compreden los cuadritos esos del panel no cambian... creo q esta mal algo del player...
Título: Disparar projectil
Publicado por: juanma_teso en Noviembre 18, 2015, 07:21:16 PM
No cambian si tu no pones una orden para que cambien, sin una base de programación se te va a hacer muy difícil avanzar en un juego por fácil que parezca 
Título: Disparar projectil
Publicado por: kalm97 en Noviembre 19, 2015, 02:35:25 AM
ya lo resolvi muchas grasias por su ayuda.. lo que ise fue eliminar la funcion para disparar de Player y le ise un sript aparte y le dije q cuando ago click D creaba projectil 1 y cuando ago click A projectil 2 y cada projectil tiene un transform de posicion el projectil 1 a right y el 2 a left....  como pongo ese post en solucionado