Jump to content
UnitySpain
Srare

Problema con lerp.

Recommended Posts

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.

Share this post


Link to post
Share on other sites
hace 25 minutos, lightbug said:

Có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 ..

 

Edited by Srare

Share this post


Link to post
Share on other sites

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);

 

Edited by lightbug

Share this post


Link to post
Share on other sites
hace 17 minutos, lightbug said:

 

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.

Share this post


Link to post
Share on other sites

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

Edited by James Roman

Share this post


Link to post
Share on other sites
7 hours ago, Srare said:

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

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

 

Share this post


Link to post
Share on other sites
hace 39 minutos, lightbug said:

Ah 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.

Share this post


Link to post
Share on other sites
7 hours ago, Srare said:

Si, 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.

Share this post


Link to post
Share on other sites

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....

Share this post


Link to post
Share on other sites

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! 

Share this post


Link to post
Share on other sites

×
×
  • Create New...