Noticias

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

Movimiento cámara fluido con ratón

Iniciado por gele81, Junio 04, 2017, 09:20:08 PM

Tema anterior - Siguiente tema
Buenos dias
 
intentando hacer, con poco éxito un script que cuando tu arrastres el ratón en una superficie 2D por la pantalla se mueva la cámara según la fuerza que utilices en el impulso y pare poco a poco, similar a los juegos de android. El caso es que no doy pie con bola.
 
No me sale nada limpio y suave. Todo es al mogollón y movimientos muy duros.
 
Lo estoy intentando con un raycast, por que se que el touch no vale para PC.
 
Un saludo y gracias.

Hola, si necesitas el impulso del mouse podes usar los axis Mouse X y MouseY, te devuelven float segun cuando lo desplazaste respecto el cuadro anterior, por ej si lo moviste despacio --> 0.05f , si lo moviste mas rapido --> 0.5f (no se si son valores reales pero para tener una idea).
 
La clave es NO manejar directamente la velocidad con lo anterior, sino en un cuadro tenes velocidad pero en el que sigue se puso a cero, la clave con lo anterior es determinar el punto a donde iria a parar la camara luego del desplazamiento para luego hacer un Lerp de posicion y llevarla suavemente a ese lugar.
 
Algo mas o menos:
 

//En la camara
public float speed = 1;      //<--- valores para probar
Vector3 targetPos;   //<--- pos a la que hara el Lerp                                  
float lerpValue = 0.5f;      //<--- valores para probar
void OnEnable()
{
targetPos = transform.position;
}
void Update()
{
targetPos.position += speed * ( Vector2.right * Input.GetAxis("Mouse X") + Vector2.up * Input.GetAxis("Mouse Y") );
}
//siempre los movimientos estos de camara conviene hacerlos ultimos en los Update's
void LateUpdate()
{
transform.position = Vector3.Lerp(transform.position , targetPos.position , lerpValue);
}

 
Probalo en la camara a ver si funca, lo hice aca asi que puede haber errores

Muchísimas gracias. Me funciona muy bien, es lo que yo quería. 

Etiquetas: