Rotar personaje sin que avance Unity solucionado
Buenas tardes, tengo programado al personaje protagonista de tal manera qué cuando pulsas una tecla de dirección comienza a correr hacia la dirección que has pulsado, pero en el momento en el que pulsas la dirección contraria el personaje busca el ángulo al que deseas dirigirte girando y haciendo como un compás, un arco y no rotando sobre su eje para dirigirse hacia donde quieres ir.
¿Qué problema hay? Pues que, si estás al borde de un precipicio y giras para donde no debes el protagonista se cae al barranco como si estuviese harto de la vida y no es lo que quiero que haga. Puedo solucionarlo simplemente aumentando la velocidad de rotación del personaje cuando busca el angulo al que queremos dirigirnos, pero aun así sigue haciendo un arco, aunque más pequeño y el personaje gira demasiado rápido.
En este video de YouTube se puede ver cómo han conseguido programar lo que necesito que haga el personaje al girar, pero no lo explica porque el tutorial va sobre la cámara: https://www.youtube.com/watch?v=urNrY7FgMao
Mi pregunta es:
¿Sabéis como ha podido conseguir que se mueva así?
Saludos.
Rotar personaje sin que avance Unity
Hola, no estoy seguro, pero creo que era con la rotación local:
Transform, rotation = Quaternion, localEulerAngles(0, 45, 0);.
Si esto no funciona tendrás que anular el desplazamiento cuando la tecla de rotación esté pulsada.
Rotar personaje sin que avance Unity
Gracias por responder, siempre eres tu quien aporta el granito de arena, una lástima que no haya más movimiento por el foro, las cosas serian mucho más fáciles.
He probado a hacerlo tal y como me has explicado y da error, pero en cambio sí que funciona poniendo:
transform, localEulerAngles = new Vector3 (0,45,0);
Aunque claro, gira de sopetón hacia el angulo que tiene que girar y yo lo que necesito es que lo haga suavemente.
Lo tengo programado con transform, rotation = cuaternión, slerp que hace las rotaciones suaves, pero no sé cómo aplicarlo al transform, localEulerAngles, por ejemplo, al eje Y solamente.
¿Alguna otra función como cuaternión, slerp que rote suavemente de un angulo a otro un eje?
Saludos.
Rotar personaje sin que avance Unity
Buenos días, ya he encontrado la solución haciendo pruebas. Había probado un montón de comandos, pero ninguno me hacía lo que yo quería qué es que girase suavemente (sin tener que programar muchos algoritmos), por lo que he ido probando otras cosas y la solución es crear un pivote que hará de personaje y el personaje realmente lo que hace es seguir la posición del pivote, de tal manera qué podemos rotar al personaje como queramos que su rotación no va a afectar hacia donde se diriga y así podrá dar una vuelta sobre si mismo y otras muchas cosas, como desplazarse lateralmente. Saludos.