Saya membawa pertanyaan lain-seret-dengan-mouse (saya menggunakan Unity dengan C #), tetapi dengan detail khusus yang kurang umum: adanya hambatan di tengah cara palung yang menyeret terjadi (ruang 3D, bukan 2D) .
Biarkan saya jelaskan. Misalkan saya memiliki pesawat yang ingin saya seret kubus yang disebut "obj". Itu mudah. Berikut ini adalah implementasi sederhana saya untuk itu:
void Update () {
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray, out hit, 1000000))
obj.transform.position = new Vector3(hit.point.x,0.25F,hit.point.z);
}
Berhasil. Namun, anggaplah saya juga memiliki beberapa kubus lain di atas pesawat, yang merupakan kendala. Jelas, ketika pemain bergerak "keberatan" di atas pesawat, gerakan seperti itu harus diblokir oleh rintangan. Dan kemudian, saat bertabrakan dengan rintangan, "obj" harus bergerak hanya terpotong ke sisi hambatan itu. Jika mouse digerakkan dan "obj" berhenti bertabrakan dengan rintangan, gerakan gaya menyeret bebas dilanjutkan kembali.
Untuk membuat tantangan lebih sulit, saya berusaha keras untuk mencapainya tanpa menggunakan komponen RigidBody pada rintangan (objek yang diseret dapat memilikinya). Adakah ide tentang cara paling efisien untuk mencapai hal itu? Terimakasih banyak!
EDIT: Komentator telah menarik perhatian saya bahwa saya harus menyebutkan bahwa benda-benda dibiarkan berputar ketika memotret.
EDIT 2: Mempertimbangkan sulitnya formulasi asli, saya mengubah pertanyaan yang memungkinkan penggunaan komponen-komponen Rigidbody pada objek yang diseret. Solusinya tidak bisa menggunakan komponen Rigidbody di rintangan.