Resultados 1 al 4 de 4

Tema: Rotar personaje sin que avance Unity SOLUCIONADO

  1. #1
    Fecha de ingreso
    Oct 2016
    Mensajes
    227

    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:

    Mi pregunta es:
    ¿Sabéis como ha podido conseguir que se mueva así?
    Saludos.
    Última edición por Jhonatan00_00; 07-02-2019 a las 11:20

  2. #2
    Fecha de ingreso
    Jul 2015
    Mensajes
    465

    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.

  3. #3
    Fecha de ingreso
    Oct 2016
    Mensajes
    227

    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.

  4. #4
    Fecha de ingreso
    Oct 2016
    Mensajes
    227

    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.

Temas similares

  1. Colisiones en Unity solucionado
    Por Jhonatan00_00 en el foro Videojuegos
    Respuestas: 2
    : 28-03-2019, 10:25
  2. Que no avance hasta haber rotado Unity
    Por Jhonatan00_00 en el foro Programación y Scripts
    Respuestas: 5
    : 22-03-2019, 16:22
  3. Niebla en Unity SOLUCIONADO
    Por Jhonatan00_00 en el foro Videojuegos
    Respuestas: 5
    : 25-02-2019, 13:43
  4. Animaciones descoordinadas Unity SOLUCIONADO
    Por Jhonatan00_00 en el foro Videojuegos
    Respuestas: 1
    : 19-02-2019, 11:10
  5. Pulsar mas de una tecla a la vez Unity SOLUCIONADO
    Por Jhonatan00_00 en el foro Programación y Scripts
    Respuestas: 4
    : 01-02-2019, 21:00

Etiquetas para este tema