Noticias

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

Problema con lerp.

Iniciado por Srare, Octubre 17, 2017, 01:44:52 AM

Tema anterior - Siguiente tema
Buenas a todos, les comento, tengo un evento lerp en la camara principal (Y unica ) de mi juego, el tema es que al darse cierta circunstancia esta debe moverse gracias al siguiente codigo:
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class subLevelPass : MonoBehaviour {
private Vector3 Inicio;
private Vector3 Final;
float lerpTime = 5f;
float currentLerpTime;
void Start()
{
   Inicio = transform.position;
   Final = new Vector3 (5.81f, -16.42f, 0f);
}
void Update()
{
   //increment timer once per frame
   currentLerpTime += Time.deltaTime;
   if (currentLerpTime > lerpTime) {
      currentLerpTime = lerpTime;
   }
   float perc = currentLerpTime / lerpTime;
   transform.position = Vector3.Lerp (Inicio, Final, perc);
}
}

 
 El problema viene cuando al llegar a su destino, la camara desaparece, a que se debe esto? Se que algo me estoy olvidando.

Cita de: Srare date=1508197492la camara desaparece
   


Cómo es que la cámara desaparece?

Octubre 17, 2017, 02:11:54 AM #2 Ultima modificación: Octubre 17, 2017, 02:31:46 AM por Srare
Cita de: lightbug date=1508198779Cómo es que la cámara desaparece?
   


No estoy seguro de llamarlo "Desaparecer" pero como que al llegar al punto todos los objetos que estan en la camara desaparecen, por ende dejan de verse todas las cosas.. de hecho acabo de fijarme y la camara no desaparece, lo que dejan de verse son los objetos ..
 
 


Octubre 17, 2017, 03:10:30 AM #4 Ultima modificación: Octubre 17, 2017, 03:11:53 AM por lightbug
El código parecería estar bien, aunque ya estoy medio dormido y no aseguro nada, pero se puede dar que los objetos a renderizar esten en z = 0, que la pos inicial z de la camara sea distinta de cero, entonces cuando estas acercandote a la pos destino (con un z = 0) lo haga bien, pero el frustrum de la camara no te incluya a dichos objetos.
 
Tambien se podría dar que no te querés mover en z.
 
No se si tu proyecto es 2D y ortogonal, pero si lo fuera y lo que querés es moverte en x y en y.
 
Cambiá el Final por lo siguiente, (ojo estoy suponiendo muchas cosas):
 

Final = new Vector3 (5.81f, -16.42f, transform.position.z);

 
 

Cita de: lightbug date=1508202630 
   
   
      No se si tu proyecto es 2D y ortogonal, pero si lo fuera y lo que querés es moverte en x y en y.
   
   
       
   
   
       
   


El proyecto es 2D efectivamente, al estilo super meet boy.

Octubre 17, 2017, 04:09:49 AM #6 Ultima modificación: Octubre 17, 2017, 04:12:40 AM por James Roman
entonces fijate que la posicion z de la camara no sea mayor a la de los objetos que quieres renderizar, normalmente en modo 2D la camara posee un z de -10, quizas el componente z de la posicion final deberia ser el mismo

Cita de: Srare date=1508203656El proyecto es 2D efectivamente, al estilo super meet boy.
   


Ah mirá... y? probaste la línea que te pasé?
 
 

Cita de: lightbug date=1508207011Ah mirá... y? probaste la línea que te pasé?
   
   
       
   


Si, con esa linea no se mueve siquiera la camara, jaja.. Se me habia olvidado comentartelo, disculpa.

Cita de: Srare date=1508209335Si, con esa linea no se mueve siquiera la camara, jaja.. Se me habia olvidado comentartelo, disculpa.
   


No se mueve? simplemente con esa linea estas dando el x e y que queres (pones valores asi no es lo ideal, pero bueno, para seguir con eso que tenés) y el z final lo haces igual al z inicial.

Es una pregunta tonta pero... ¿El script está en el GameObject que tiene la cámara no?

buenas, yo pienso como @lightbug
 
si es un 2d, y desaparecen los objetos de la camara, es que la camara esta mas "adelante" que los objetos (en el eje z seguramente) 
 
en:
 

Final = new Vector3 (5.81f, -16.42f, 0f);

 
yo creo que ese 0f deveria ser otro valor... 
 
pero si provaste lo que te puso lightbug y no funciona pues entonces nose....

Muchas gracias a todos! Efectivamente era el problema del valor de Z (Como dice James Roman, la camara de un 2D se situa -10f de la posicion Z) y al poner el Z en 0, ya contrastaba con los demas objetos... disculpa Lightbug, cuando lei y probe, lo hice de la manera incorrecta.. jaja Estaba algo dormido, acabo de probar y funciona perfecto! 

Etiquetas: