Bagaimana pendeteksian dan gerakan tabrakan biasanya ditangani dalam FPS, khususnya menangani sedikit perubahan ketinggian tanah seperti tangga (baik pada kemiringan maupun penurunan)?
Bagaimana pendeteksian dan gerakan tabrakan biasanya ditangani dalam FPS, khususnya menangani sedikit perubahan ketinggian tanah seperti tangga (baik pada kemiringan maupun penurunan)?
Jawaban:
Entitas biasanya diwakili oleh kapsul (silinder dengan bola di ujungnya) terhadap geometri dunia (atau mesh tumbukan yang disederhanakan) untuk tumbukan kelas dunia.
Tangga biasanya tidak bertabrakan dengan jalan yang tidak terlihat, atau di bawah ketinggian tertentu yang biasanya Anda naikkan sebagai efek samping dari resolusi tabrakan. (Anda akan mendapatkan interpenetrasi dengan gerakan sebagai bagian dari ukuran langkah, dan resolusi akan muncul ke atas sebagai bidang terdekat)
Saya pikir inilah cara Unreal 3 bekerja, tetapi saya bisa saja salah. Saya ingat pernah melihat hierarki kotak pembatas di Sumber, tapi saya tidak ingat apakah itu hanya untuk pertempuran. bagaimanapun, kapsul itu sederhana dan cepat
Dalam Unity 3D, cara termudah adalah memiliki pengontrol orang pertama. Biasanya karakter harus melompat jika ketinggian langkah lebih tinggi dari langkah offset. Tetapi cara lain untuk melakukannya adalah menambahkan kotak collider dan memutarnya sehingga karakter dapat menaiki tangga dengan mudah, seolah-olah itu jalan.
Jawaban Brady baik, tetapi jika Anda ingin cara hacky untuk melakukannya, Anda bisa melempar sinar ke geometri tabrakan dasar Anda, mencari tahu apa segitiga itu hits, dan kemudian menggunakan rata-rata tertimbang dari ketinggian verts of triangle untuk mencari tahu ketinggian tanah.