Unity Spain

Post Antiguos => General (Antiguo) => Mensaje iniciado por: Pipioca en Mayo 21, 2016, 02:38:55 PM

Título: Problema con el scroll parallax. No se reinicia bien el movimiento
Publicado por: Pipioca en Mayo 21, 2016, 02:38:55 PM
Buenas foro!
 
Tengo un problema con mi fondo al hacer scroll parallaxing! Tengo un fondo con un material que se repite y para ello puse en el Update esto: GetComponent ().material.mainTextureOffset = new Vector2 (((auxTiempo) * velocidad) % 1, 0); Hasta ahi bien, me muevo y el fondo se repite.
 
El problema es cuando el personaje se para, por lo que el fondo se para... Al reiniciar el movimiento el fondo de un salto, no continúa suavemente desde donde estaba!
 
En el Update tengo..
 

void Update () {        
         if (enMovimiento) {            
             //El fondo cerca se moverá si el personaje se mueve. El fondo lejos se moverá siempre
             if ((rigiPersonaje.velocity.x != 0) || (esFondoLejos)) {
                 
                 if (!parado) {
                     auxTiempo = Time.time - tiempoInicio;
                 }
 
                 GetComponent<Renderer> ().material.mainTextureOffset = new Vector2 (((auxTiempo) * velocidad) % 1, 0);
                 parado = false;
 
             } else if ((rigiPersonaje.velocity.x == 0) && (!parado)) {
                 auxTiempo = Time.time - tiempoInicio;        
                 //auxTextureOffset = GetComponent<Renderer> ().material.mainTextureOffset                    
                 parado = true;    
             }
         }
     }

 
Lo he intentado con el auxTiempo y con el auxTextureOffset para que me guarde como estaba el fondo pero nada... Estoy algo desesperado ya jajaja.
 
¿Alguien me puede ayudar? ¿Sabe como resolverlo?
 
Muchas gracias de antemano!
 
Saludos!!
Título: Problema con el scroll parallax. No se reinicia bien el movimiento
Publicado por: Pipioca en Mayo 21, 2016, 06:35:41 PM
¡Encontré la solución!
 
La cosa es ir sumante el maintextureOffset de esta manera...   
 

GetComponent<Renderer> ().material.mainTextureOffset += new Vector2 ((Time.deltaTime*velocidad) % 1, 0);

 
 
 
Lo dejo por aquí por si a alguien le sirve de ayuda.
 
Saludos!