Mam pytanie w webgl powiązane z plikiem three.js. Chciałbym dołączyć informacje do obiektu. Na przykład, gdy klikam obiekt, chciałbym pobrać pewne informacje, które są powiązane z obiektem, takie jak adres URL, a następnie uruchomić funkcję wykorzystującą te informacje.Z plikiem three.js mogę dołączyć informacje do obiektu, na przykład adresu URL?
Kod używam na znalezienie obiektu wynosi:
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);
Ostatni wiersz jest jak jestem aktualnie manipulowanie obiekt. Tablica objects
to po prostu tablica wszystkich obiektów. Problem polega na tym, że nie wiem wystarczająco dużo o tym, jak działa Raycaster lub intersectObjects, lub o tym, jak powiązać jakiekolwiek informacje z obiektem, aby można było je później przywołać.
Perfect! Dokładnie to, czego szukałem. – JVE999
Czy jest jakaś różnica między robieniem tego i zwykłym powiedzeniem "Mesh.myObject = {key: value};" Myślę, że to w zasadzie to samo, nie? –
Jedynym wyróżnieniem, które przychodzi na myśl, a jest to ważne, jest to, że klonowanie obiektu Object3D zachowałoby właściwość userData. –