Gracias Gracias:  1
Resultados 1 al 6 de 6

Tema: Que no avance hasta haber rotado Unity

  1. #1
    Usuario Senior Avatar de Jhonatan00_00
    Fecha de ingreso
    Oct 2016
    Mensajes
    172

    Que no avance hasta haber rotado Unity

    Buenas noches, hace tiempo que solucioné este problema pero de una forma un poco chapucera. El problema a resolver es que el personaje debe de rotar sobre su propio eje y después avanzar cuando este posicionado en el angulo correcto, no empezar a avanzar a la vez que rota porque lo que hace es rotar como un coche, haciendo una circunferencia.
    La solución que hice fué crear un pivote el cual hacia el movimiento del personaje y el personaje unicamente rotaba, por lo que podías moverte hacia donde quisieras mientras el personaje rotaba buscando esa direccion, pero al final se notaba qué cuando aún no habia terminado de posiciónarse ya estaba andando, osea qué lo hacía de lado durante un momento y no quedaba bien.
    Pregunté esto en algún tema del foro, pero no lo encuentro para volver a preguntar así que lo pregunto por aqui:
    ¿Cómo rotamos a un personaje sobre su propio eje para qué avance una vez está posiciónado? .
    Un saludo.

  2. #2
    Usuario Senior Avatar de Jhonatan00_00
    Fecha de ingreso
    Oct 2016
    Mensajes
    172

    Re: Que no avance hasta haber rotado Unity

    Buenas tardes, estoy viendo que la gente usa mucho el componente Character Controller para mover a sus personajes y puede que vayan por ahí los tiros, pero estoy testeando con el y no hace nada del otro mundo, tan solo detecta colisiones y dice la inclinación máxima qué el personaje puede subir, tonterias así que puedes hacer con un poco de programación.
    ¿Sabeis si de alguna manera se puede conseguir lo que busco por medio del Character Controller?
    Un saludo.

  3. #3
    Usuario Senior Avatar de Jhonatan00_00
    Fecha de ingreso
    Oct 2016
    Mensajes
    172

    Re: Que no avance hasta haber rotado Unity

    Nada, sigo con el mismo problema. He terminado por hacer de todo:
    - Con el character controller aparte de ser mas complicado programar que se mueva al final se mueve como si fuese un pivote sobre el que rota el personaje.
    - Programando un pivote por tu cuenta el movimiento queda antinatural aunque sea mas fácil moverlo.
    - Haciendo que rote mas rápido para qué no de tiempo a qué avance parece un trompo.
    - Programando que no comience a caminar hasta qué haya alcanzado el angulo de destino se queda pillado en algunos angulos y se para en seco.
    Si jugais por ejemplo, al videojuego Dead Space 2 (que me lo estoy pasando ahora por cierto), vereis como podeis rotar al personaje hacia donde quieras que no empezara a avanzar hasta qué no se haya recolocado en su lugar, pero sin importar lo despacio que lo hagas girar, hasta qué no tiene su posición no comienza a andar. ¿como narices lo hacen? Es que no hay ni tutoriales en internet, todo el mundo hace los juegos igual.

  4. #4
    Usuario completo Avatar de Juani
    Fecha de ingreso
    Jul 2015
    Ubicación
    Montilla (Córdoba)
    Mensajes
    471

    Re: Que no avance hasta haber rotado Unity

    Creo que ya te lo comenté, tienes que, anular el movimiento cuando aplicas la rotación, no he tocado c# y no sé exactamente cuáles son las funciones, pero la forma de hacerlo es la misma. Cuando aplicas la rotación el personaje debe pararse.
    Ejemplo:
    el personaje avanza en el eje x=10, los valores para él vector movimiento serian (10,0,0);
    el personaje rota en su propio eje z=1º, valores del vector rotación (0,0,1);
    La letra "a" pulsada activa la rotación;
    La sentencia sería.
    If a(está pulsada)entonces:
    personaje.aplicaRotación(0,0,1);
    personaje.aplicaMovimiento (-10,0,0); Movimiento negativo para contrarrestar el movimiento positivo con lo que se queda a cero.

  5. #5
    Usuario Senior Avatar de Jhonatan00_00
    Fecha de ingreso
    Oct 2016
    Mensajes
    172

    Re: Que no avance hasta haber rotado Unity

    En otro tema (que no encuentro y por eso abrí este) comenté el mismo problema pero no me dijiste exactamente que hiciera eso, de todas formas si hago que en lugar de avanzar retroceda mientras rota lo que va a hacer es ir hacia atrás no quedarse en su lugar, además ¿como le dices que, avance cuando se haya colocado en la posición correcta? Si le dices que, avance solo cuando la rotación sea igual a la posición correcta solo avanzará cuando está exactamente en ese angulo que le has indicado y tampoco funciona.
    Voy a probar a ver qué sale y te digo. Saludos.

  6. #6
    Usuario Senior Avatar de Jhonatan00_00
    Fecha de ingreso
    Oct 2016
    Mensajes
    172

    Re: Que no avance hasta haber rotado Unity

    Buenas tardes, he estado dándole vueltas y mas vueltas y haciendo pruebas y la única solución posible que funcione es la qué había hecho en un inicio, creando un pivote que mueva al personaje mientras gira. Además he estado observando videojuegos profesionales y es así como lo hacen porque se mueve igual. El problema está en que debes de saber dónde debe de estar el eje de rotación del personaje para qué rote sobre el pivote porque si no lo hace de una forma muy artificial y es complicado.
    Cuando uno está intentando hacer algo profesional se ve solo, porque la gente lo unico que sabe hacer son cosas muy básicas, casi siempre en 2D o descargando directamente script y modelados ya hechos que los aplicas y listo, nada profesional. Cuando empiezas a hacer cosas de verdad es cuando te das cuenta que casi nadie sabe.
    A ver si avanzo mas rápido ya porque he perdido demasiado tiempo en detalles.
    Un saludo.

Temas similares

  1. Rotar personaje sin que avance Unity (SOLUCIONADO)
    Por Jhonatan00_00 en el foro Programación y Scripts
    Respuestas: 3
    : 07-02-2019, 13:19
  2. Respuestas: 2
    : 13-04-2015, 16:01
  3. Respuestas: 3
    : 09-03-2012, 19:06
  4. Unos vasos haber que tal
    Por shirops en el foro Trabajos Finalizados
    Respuestas: 0
    : 23-09-2009, 16:24
  5. Haber este
    Por Ntoper en el foro Trabajos en Proceso
    Respuestas: 4
    : 22-08-2006, 06:00

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •