Tôi có câu hỏi về webgl liên quan đến three.js. Tôi muốn đính kèm thông tin vào một đối tượng. Ví dụ, khi tôi bấm vào một đối tượng, tôi muốn lấy một số thông tin được gắn với đối tượng, như một URL, và sau đó chạy một hàm bằng cách sử dụng thông tin đó.Với ba.js, tôi có thể đính kèm thông tin vào một đối tượng, chẳng hạn như URL không?
Mã Tôi đang sử dụng cho việc tìm kiếm các đối tượng là:
var vector = new THREE.Vector3((event.clientX/window.innerWidth) * 2 - 1, -(event.clientY/window.innerHeight) * 2 + 1, 0.5);
projector.unprojectVector(vector, camera);
var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());
var intersects = raycaster.intersectObjects(objects);
intersects[0].object.material.color.setHex(Math.random() * 0xffffff);
Dòng cuối cùng là như thế nào tôi đang thao tác với đối tượng. Mảng objects
đơn giản là một mảng của tất cả các đối tượng. Vấn đề là tôi không biết đủ về cách Raycaster hoặc intersectObjects hoạt động, hoặc đủ về cách kết nối bất kỳ thông tin nào với một đối tượng để nó có thể được gọi lại sau.
Perfect! Chính xác những gì tôi đang tìm kiếm. – JVE999
Có bất kỳ sự khác biệt nào giữa việc thực hiện điều này và chỉ đơn giản là nói 'Mesh.myObject = {key: value};' Tôi nghĩ về cơ bản nó giống như vậy không? –
Chỉ có sự phân biệt mà đến với tâm trí, và nó là một trong những quan trọng nhất, là nhân bản một Object3D sẽ bảo tồn tài sản userData. –