Noticias

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

Duda animación y movimiento

Iniciado por Mega, Julio 07, 2017, 01:24:21 AM

Tema anterior - Siguiente tema
Hola , tengo un problema que es tengo un script que lo que hace es que al dar hacia arriba pues va hacia arriba y si le doy abajo pues abajo , pero es un juego de una nave y quiero que es este reproduciendo un animación de sprites que he hecho para el fuego mientras que se mueve ,también que se reproduzca  aunque este quieto.Creo que se puede arreglar sin scripting pero nose.
 
 
 
El juego es en 2d.
 
Gracias de antemano.
 
 

Ah ya entendi,  y el script? donde está? "sin script no hay posada"
 

 
 
 
 
 
 

Hola!

Puedes probar a añadirle a la nave un child que tenga la animación del fuego, en la jerarquía.

Asegúrate de que la animación del fuego tiene el tick en "Loop Time", así nunca terminará, a menos que digas lo contrario por código. O cuando la nave explote, por ejemplo!

Julio 07, 2017, 06:19:07 PM #3 Ultima modificación: Julio 10, 2017, 12:11:34 PM por pioj
Cita de: lightbug date=1499398137Ah ya entendi,  y el script? donde está? "sin script no hay posada"
   
   
      
   
       
   
   
       
   
   
       
   




   
       
   
   
      var speed : float = 10;
   
   
      function Update () {
   
   
       if (Input.GetKey (KeyCode.UpArrow)) transform.Translate (Vector3(0,1,0)* Time.deltaTime*speed); 
       if (Input.GetKey (KeyCode.DownArrow)) transform.Translate (Vector3(0,-1,0)* Time.deltaTime*speed);
        
   
   
      }
   
   
       
   

[/quote]
 
 
 
El script funciona pero quiero que se mueve ay se reproduzca la animación a la vez.

Y porque no le añades una partícula de efecto fuego? y si lo quieres con sprites hazte un bucle que te cambie las imagenes en la función OnGui o en el Update.

Cita de: Mega date=1499383461mientras que se mueve ,también que se reproduzca  aunque este quieto
   


creo que eso se puede simplificar bastante con : "reproducir siempre"
 
Cita de: Mega date=1499444347El script funciona pero quiero que se mueve ay se reproduzca la animación a la vez.
   


Si estas preguntando eso es porque no entendes bien el sistema de animacion ,lo cual esta bien, a todos seguro nos paso de animar una puerta y que abra y cierrre todo bien, pero la movias y se teletransportaba al lugar original jaja, ahh que lindos recuerdos.
 
El sistema funciona parecido a como vos lo haces en un script, en fin siempre mnodificas algun valor de algun componente. La animacion contiene datos ya establecidos, listos para ser leidos, datos fijos. Tu script (asi como esta) lo que hace es calcular la proxima posicion. La animacion tiene esta ventaja.
 
A lo primero pense que "animabas el movimiento" (por eso te pedi el script) porque planteaste el conflicto entre mover tu objeto (lo cual esta bien hecho) y animar el sprite. Toda propiedad que animes en un clip que no modifique la posicion de tu objeto "es valida" (en si cualquier propiedad de interes) , es decir, tu script de movimiento va a seguir funcionando (acordate de lo de arriba, no queres que la posicion se pise con datos fijos y encima estas calculandolas en tu script). --> Pero ya sea de paso, si tuvieras el caso en el que a futuro tenes que animar el movimiento de tu nave (y a modo didactivo esta bueno) lo que tenes que tener en cuenta la jerarquia que tiene, ej de dos escenarios:
 
Escenario 1:
 


  •    Nave(mesh + collider + ....+ Animacion(pos))


Cuando quieras animar una pos, esta va a hacerlo respecto al mundo, ya que animas localmente(si no hay padre el padre es el mundo) es decir que tu script de movimiento no va a funcionar como debe.
 
Escenario 2:
 


  •    Objeto vacio (lleva script de movimiento)
       


    •          Nave(mesh + collider + ....+ + Animacion(pos))
            

    •    



en este escenario las animaciones se la pones a la nave, que en su propio mundo vive siempre respecto a "Objeto vacio".
 
 

Cita de: lightbug date=1500048161creo que eso se puede simplificar bastante con : "reproducir siempre"
   
   
      Si estas preguntando eso es porque no entendes bien el sistema de animacion ,lo cual esta bien, a todos seguro nos paso de animar una puerta y que abra y cierrre todo bien, pero la movias y se teletransportaba al lugar original jaja, ahh que lindos recuerdos.
   
   
      El sistema funciona parecido a como vos lo haces en un script, en fin siempre mnodificas algun valor de algun componente. La animacion contiene datos ya establecidos, listos para ser leidos, datos fijos. Tu script (asi como esta) lo que hace es calcular la proxima posicion. La animacion tiene esta ventaja.
   
   
      A lo primero pense que "animabas el movimiento" (por eso te pedi el script) porque planteaste el conflicto entre mover tu objeto (lo cual esta bien hecho) y animar el sprite. Toda propiedad que animes en un clip que no modifique la posicion de tu objeto "es valida" (en si cualquier propiedad de interes) , es decir, tu script de movimiento va a seguir funcionando (acordate de lo de arriba, no queres que la posicion se pise con datos fijos y encima estas calculandolas en tu script). --> Pero ya sea de paso, si tuvieras el caso en el que a futuro tenes que animar el movimiento de tu nave (y a modo didactivo esta bueno) lo que tenes que tener en cuenta la jerarquia que tiene, ej de dos escenarios:
   
   
      Escenario 1:
   
   


  •          Nave(mesh + collider + ....+ Animacion(pos))
          

  •    

      Cuando quieras animar una pos, esta va a hacerlo respecto al mundo, ya que animas localmente(si no hay padre el padre es el mundo) es decir que tu script de movimiento no va a funcionar como debe.
   
   
      Escenario 2:
   
   


  •          Objeto vacio (lleva script de movimiento)
             


    •                Nave(mesh + collider + ....+ + Animacion(pos))
                  

    •          


  •    

      en este escenario las animaciones se la pones a la nave, que en su propio mundo vive siempre respecto a "Objeto vacio".
   
   
       
   


Muchísimas gracias

Etiquetas: