¿Cómo hacer que mi personaje 2D se pare normalmente en pendiente?

13

Tengo este personaje en Unity3D (Modo 2D) ... en una pendiente que se ve así, ingrese la descripción de la imagen aquí

Pero quiero que el personaje se pare en la línea roja ... como debajo ingrese la descripción de la imagen aquí

¿Cómo puedo hacerlo en Unity3d?

Tengo esta configuración ...

ingrese la descripción de la imagen aquí

Estoy usando Addforce simple para el movimiento ... Si elimino la restricción de posición z resulta en un movimiento extraño como rodar y así sucesivamente ... Cualquier ayuda sería apreciada :)

jamius19
fuente

Respuestas:

27

¿Has considerado que parece muy extraño que una persona esté de pie perpendicular a una pendiente?

de pie perpendicular a una pendiente

Debes estar erguido para mantener el equilibrio.


Algunas alternativas:

  • Trate sus pies como un objeto separado y gírelos para que estén paralelos a la pendiente. (Una emisión de rayos encontrará el ángulo normal , como se describe . El ángulo para los pies es de + 90 ° ).

    pies rotados

  • Fingir, moviendo todo el personaje un poco hacia abajo.

    pies "rotados" falsificados

Anko
fuente
3
gracias a todos :) Hice esto después de su sugerencia i.imgur.com/io3v7Y4.png
jamius19
1
Eso también sugiere que tan pronto como los pies rotados ya no se vean bien, tu personaje debería tropezar :)
Hagen von Eitzen
: - / ¿La rotación de los pies se ve extraña en la imagen que adjunto?
jamius19
@ jamius19 Se ven bien para mí. Creo que el comentario de Hagen fue una broma.
Anko
1
No es necesario que muevas el personaje hacia abajo, solo mueve la imagen de la pendiente hacia arriba un poco en relación con el físico
freak de trinquete
2

Intente usar RaycastHit.normal en el suelo para normalizarse. Ellos ponen char.up = normal

dnk drone.vs.drones
fuente
1
¿Por qué desperdiciar la CPU con una emisión de rayos si la física de Unity ya proporciona esta información de forma predeterminada en cada colisión?
Kroltan