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 :)

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"


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.