Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Srare en Noviembre 23, 2017, 05:40:30 PM

Título: Deformacion de objeto
Publicado por: Srare en Noviembre 23, 2017, 05:40:30 PM
Gente, buenos dias. Escribo para consultarles como podría yo deformar un objeto (Por ejemplo, su escala X) a cierto punto en un determinado período de tiempo? Muchas gracias de antemano! :D
Título: Deformacion de objeto
Publicado por: pasky en Noviembre 23, 2017, 07:52:10 PM
Yo, para esas cosas que van "por tiempo", tiro mucho de iTween, que lo puedes bajar de la Asset Store.
 
También te lo puedes hacer tu con un script que use una courutina, por ejemplo.
 
O simplemente usar alguna de las opciones de Vector3: Lerp, MoveToward, etc. (Si no me equivoco...)
 
Si le dedicas un rato lo puedes sacar tu mismo.
Título: Deformacion de objeto
Publicado por: Igor en Noviembre 24, 2017, 03:25:04 PM
puede
 

//puedes usar un float para medir el tiempo
private float tiempoTranscurrido = 0;
//otro float para el tiempo deseado en el que se deforma
private float tiempoLimite = 10.0f; //porejemplo 10 segundos
//y un "bool" para ver si ha cambiado o no
private bool cambiado = false;
void Update() {
   if (!cambiado) {//si NO ha cambiado...
      tiempoTranscurrido += Time.deltaTime; //ir sumando tiempo
      if (tiempoTranscurrido > tiempoLimite) {
         //si el transcurrido es mayor que el limite...
         transform.localScale = new Vector3(escala x, escala y, escala z);
         //cambiar escala
         cambiado = true;//poner que si ha cambiado
         //para que no vuelva a comprobarlo o a cambialo...
      }
   }
}

 
nose.... algo asi.... depende de para que sea... y como quieres que sea el cambio.... este seria instantaneo... pero igual quieres que valla cambiando poco a poco...
Título: Deformacion de objeto
Publicado por: Srare en Noviembre 28, 2017, 05:33:30 PM
Muchas gracias gente! Esta solucionado! Un saludon compañeros... he utilizadco un codigo muy similar al siguiente :D
 
Cita de: Igor date=1511533504 
   
   

//puedes usar un float para medir el tiempo
private float tiempoTranscurrido = 0;
//otro float para el tiempo deseado en el que se deforma
private float tiempoLimite = 10.0f; //porejemplo 10 segundos
//y un "bool" para ver si ha cambiado o no
private bool cambiado = false;
void Update() {
   if (!cambiado) {//si NO ha cambiado...
      tiempoTranscurrido += Time.deltaTime; //ir sumando tiempo
      if (tiempoTranscurrido > tiempoLimite) {
         //si el transcurrido es mayor que el limite...
         transform.localScale = new Vector3(escala x, escala y, escala z);
         //cambiar escala
         cambiado = true;//poner que si ha cambiado
         //para que no vuelva a comprobarlo o a cambialo...
      }
   }
}