Wie kann ich meinen 2D-Charakter normal am Hang stehen lassen?

13

Ich habe diesen Charakter in Unity3D (2D-Modus) ... in einem Hang, der so aussieht, Bildbeschreibung hier eingeben

Aber ich möchte, dass der Charakter entlang der roten Linie steht Bildbeschreibung hier eingeben

Wie kann ich es in Unity3d machen?

Ich habe dieses Setup ..

Bildbeschreibung hier eingeben

Ich benutze einfaches Addforce für die Bewegung ... Wenn ich die Z-Positionsbeschränkung aufhebe, führt dies zu seltsamen Bewegungen wie Rollen und so weiter .... Jede Hilfe wäre dankbar :)

jamius19
quelle

Antworten:

27

Haben Sie gedacht, dass es sehr seltsam für eine Person ist, senkrecht zu einem Hang zu stehen?

senkrecht zu einem Hang stehen

Sie müssen aufrecht sein, um im Gleichgewicht zu bleiben.


Einige Alternativen:

  • Behandle seine Füße als einen separaten Gegenstand und drehe sie so, dass sie parallel zum Hang sind. (Ein Raycast findet die Normale des Winkels wie in dnk beschrieben . Der Winkel für die Füße beträgt + 90 ° .)

    Füße gedreht

  • Fake es, indem du den ganzen Charakter ein wenig nach unten bewegst.

    gefälschte "gedrehte" Füße

Anko
quelle
3
Vielen Dank an alle :) Ich habe dies nach Ihrem Vorschlag gemacht i.imgur.com/io3v7Y4.png
jamius19
1
Das deutet auch darauf hin, dass dein Charakter stolpern sollte, sobald die gedrehten Füße nicht mehr gut aussehen :)
Hagen von Eitzen
: - / Sieht die Drehung der Füße auf dem Bild, das ich angehängt habe, merkwürdig aus?
Jamius19
@ jamius19 Sie sehen gut aus für mich. Ich denke, Hagens Kommentar war ein Witz.
Anko
1
Sie haben nicht den Charakter zu bewegen , nach unten bewegen nur die visuelle der Steigung nach oben ein wenig in Bezug auf die körperliche müssen
Ratsche Freak
2

Versuchen Sie RaycastHit.normal auf dem Boden zu verwenden, um normal zu werden. Sie setzen char.up = normal

dnk drone.vs.drones
quelle
1
Warum CPU mit einem Raycast verschwenden, wenn die Unity-Physik diese Informationen standardmäßig bereits bei jeder Kollision bereitstellt?
Kroltan