Bagaimana cara membuat karakter 2D saya berdiri secara normal di lereng?

13

Saya mendapatkan karakter ini di Unity3D (Mode 2D) ... di lereng yang terlihat seperti ini, masukkan deskripsi gambar di sini

Tapi saya ingin karakternya berdiri di sepanjang garis merah .. Seperti di bawah ini masukkan deskripsi gambar di sini

Bagaimana saya bisa membuatnya di Unity3d?

Saya punya pengaturan ini ..

masukkan deskripsi gambar di sini

Saya menggunakan Addforce sederhana untuk gerakan ... Jika saya menghapus batasan posisi z itu menghasilkan gerakan aneh seperti bergulir dan sebagainya .... Setiap bantuan akan dihargai :)

jamius19
sumber

Jawaban:

27

Sudahkah Anda menganggap bahwa sangat aneh bagi seseorang untuk berdiri tegak lurus terhadap lereng?

berdiri tegak lurus terhadap lereng

Anda harus jujur ​​untuk tetap seimbang.


Beberapa alternatif:

  • Perlakukan kakinya sebagai benda yang terpisah dan putar kakinya agar sejajar dengan lereng. (Raycast akan menemukan sudut normal , seperti dijelaskan dnk . Sudut untuk kaki adalah +90 ° .)

    kaki diputar

  • Berpura-pura, dengan menggerakkan seluruh karakter sedikit ke bawah.

    kaki "diputar" palsu

Anko
sumber
3
terima kasih semua :) Saya membuat ini setelah saran Anda i.imgur.com/io3v7Y4.png
jamius19
1
Itu juga menunjukkan bahwa segera setelah kaki yang diputar tidak lagi terlihat bagus, karakter Anda akan tersandung :)
Hagen von Eitzen
: - / Apakah rotasi kaki terlihat aneh pada gambar yang saya lampirkan?
jamius19
@ jamius19 Mereka terlihat baik bagi saya. Saya pikir komentar Hagen adalah lelucon.
Anko
1
Anda tidak perlu memindahkan karakter ke bawah, cukup gerakkan visual kemiringan ke atas sedikit relatif terhadap fisik
ratchet freak
2

Coba gunakan RaycastHit.normal di darat untuk menjadi normal. Mereka menempatkan char.up = normal

dnk drone.vs.drones
sumber
1
Mengapa membuang CPU dengan raycast jika fisika Unity sudah memberikan informasi ini secara default pada setiap tabrakan?
Kroltan