ฉันจะทำให้ตัวละคร 2D ของฉันยืนอยู่บนความชันได้อย่างไร


13

ฉันมีตัวละครตัวนี้ใน Unity3D (โหมด 2D) ... ในความชันที่ดูเหมือนนี้ ป้อนคำอธิบายรูปภาพที่นี่

แต่ฉันต้องการให้ตัวละครยืนตามเส้นสีแดง .. เหมือนด้านล่าง ป้อนคำอธิบายรูปภาพที่นี่

ฉันจะสร้างมันใน Unity3d ได้อย่างไร

ฉันได้ตั้งค่านี้แล้ว

ป้อนคำอธิบายรูปภาพที่นี่

ฉันกำลังใช้ Addforce แบบง่ายสำหรับการเคลื่อนย้าย ... หากฉันลบข้อ จำกัด ตำแหน่ง z ส่งผลให้เกิดการเคลื่อนไหวแปลก ๆ เช่นการกลิ้งและอื่น ๆ .... ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม :)

คำตอบ:


27

คุณคิดว่ามันดูแปลก ๆ หรือเปล่าที่คน ๆ หนึ่งยืนอยู่ในแนวตั้งฉากกับความชัน?

ยืนตั้งฉากกับความชัน

คุณต้องตั้งตัวให้สมดุล


ทางเลือกบางอย่าง:

  • รักษาเท้าของเขาเป็นวัตถุแยกและหมุนให้ขนานกับความชัน (เรย์คาสต์จะค้นหามุมปกติตามที่dnk อธิบายมุมสำหรับฟุตคือ+ 90 ° )

    เท้าหมุน

  • ปลอมตัวโดยการย้ายตัวละครทั้งหมดลงเล็กน้อย

    แกล้งเท้า "หมุน"


3
ขอบคุณทุกคน :) ฉันทำสิ่งนี้หลังจากคำแนะนำของคุณi.imgur.com/io3v7Y4.png
jamius19

1
ที่ยังแสดงให้เห็นว่าทันทีที่เท้าหมุนไม่ได้ดูอย่างใด ๆ เพิ่มเติมตัวละครของคุณควรจะสะดุด :)
ฮาเจนฟอน Eitzen

: - / การหมุนของเท้าดูแปลก ๆ ในภาพที่ฉันแนบมาหรือไม่?
jamius19

@ jamius19 พวกเขาดูดีสำหรับฉัน ฉันคิดว่าความคิดเห็นของฮาเก้นเป็นเรื่องตลก
Anko

1
คุณไม่จำเป็นต้องย้ายตัวละครลงไปข้างล่างเพียงแค่เลื่อนภาพของความชันขึ้นไปเล็กน้อยเมื่อเทียบกับทางกายภาพ
วงล้อประหลาด

2

ลองใช้ RaycastHit.normal บนพื้นเพื่อให้เป็นปกติ พวกเขาใส่ char.up = ปกติ


1
ทำไมต้องเสีย CPU ด้วย raycast ถ้า Unity Physics ให้ข้อมูลนี้โดยค่าเริ่มต้นในทุกการชน
Kroltan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.