Como fazer meu personagem 2D ficar normalmente em declive?

13

Eu tenho esse personagem no Unity3D (modo 2D) ... em uma inclinação que se parece com isso, insira a descrição da imagem aqui

Mas eu quero que o personagem fique ao longo da linha vermelha .. Como abaixo insira a descrição da imagem aqui

Como posso fazer isso no Unity3d?

Eu tenho essa configuração ..

insira a descrição da imagem aqui

Estou usando o Addforce simples para movimento ... Se eu remover a restrição de posição z, isso resultará em movimentos estranhos, como rolar e assim por diante .... Qualquer ajuda seria apreciada :)

jamius19
fonte

Respostas:

27

Você já considerou muito estranho uma pessoa ficar perpendicular a uma ladeira?

perpendicular a uma inclinação

Você precisa estar em pé para se manter em equilíbrio.


Algumas alternativas:

  • Trate os pés dele como um objeto separado e gire-os para ficarem paralelos à inclinação. (Um raio emitido encontrará o ângulo normal , como descrito no dnk . O ângulo para os pés é esse + 90 ° .)

    pés girados

  • Fake, movendo o personagem todo um pouco para baixo.

    pés falsificados "rotacionados"

Anko
fonte
3
obrigado a todos :) Eu fiz este após a sua sugestão i.imgur.com/io3v7Y4.png
jamius19
1
Isso também sugere que, assim como os pés girados não olhar bem mais, seu personagem deve tropeçar :)
Hagen von Eitzen
: - / A rotação dos pés parece estranha na figura em anexo?
jamius19
@ jamius19 Eles ficam bem para mim. Eu acho que o comentário de Hagen foi uma piada.
Anko
1
Você não precisa mover o personagem para baixo; basta mover o visual da ladeira para cima um pouco em relação ao físico
catraca
2

Tente usar o RaycastHit.normal no terreno para ficar normal. Eles colocaram char.up = normal

dnk drone.vs.drones
fonte
1
Por que desperdiçar a CPU com um raycast se a física do Unity já fornece essas informações por padrão em todas as colisões?
Kroltan 5/09/15