Saya mencoba membuat game di mana objek dapat diseret, tetapi saya mengalami masalah dengan fisika. Dengan tubuh kaku yang memiliki massa serupa, mereka terkadang saling mendorong ketika diseret dan menyebabkan gerakan yang tidak diinginkan. Ini demo .
Saya ingin melakukan ini hanya menggunakan fisika bawaan Unity 3D .
Dalam demo, Anda dapat menggunakan mouse untuk mengklik dan menarik objek. Semua silinder memiliki colliders kotak dan massa 10000. Mereka juga memiliki berbagai kendala tergantung pada orientasinya (tidak ada yang bisa berputar, dan semua dibatasi dalam x atau y). Bola memiliki massa 1, bola lingkup dan kendala az.
Bola dan silinder berinteraksi dengan baik. Namun menyeret silinder satu sama lain menyebabkan persimpangan. Saya tidak mau ini!
Silinder memiliki interpolasi diatur ke 'Interpolasi' dan deteksi tumbukan diatur ke 'Berkelanjutan'. Saya telah melemparkan skrip 'DontGoThroughThings' ke semua silinder, tetapi sepertinya tidak melakukan apa-apa. Sedangkan untuk mengatur kecepatan rigidbodies, saya telah menggunakan kedua baris berikut dengan hasil yang pada dasarnya sama:
rb.AddForce(speed * diff * Time.deltaTime - rb.velocity, ForceMode.VelocityChange);
//rb.velocity = speed * diff * Time.deltaTime;
Tanpa menulis kode deteksi tabrakan saya sendiri, saya kehabisan ide. Apakah ada pengaturan sederhana atau sesuatu yang saya lewatkan?
Dengan dijelaskan konteksnya, inilah pertanyaan yang lebih tepat: "Bagaimana saya bisa mendapatkan silinder di demo saya untuk tidak saling bergerak?"
Jawaban:
Tanpa melihat proyek / kode Anda, saya ingin menyarankan ini:
Ini akan memungkinkan Anda untuk membatasi fisika tetapi dalam ruang lingkup dan mesin fisika Unity. Anda dapat bergoyang-goyang dengan skrip untuk membuatnya mengunci hanya satu objek yang akan dipindahkan dll tetapi ini harus Anda mulai.
sumber
Anda ingin deteksi tabrakan diatur
Continuous Dynamic
untuk objek yang bergerak cepat.Continuous
digunakan untuk objek statis atau bergerak lambat yangContinuous Dynamic
objek bertabrakan. Lihat di sini .(Perlu diingat bahwa deteksi tabrakan terus menerus mahal, jadi gunakan dengan hemat)
sumber