[英]With three.js, can I attach information to an object, such as a URL?
我有一個與three.js相關的webgl問題。 我想將信息附加到一個對象。 例如,當我點擊一個對象時,我想檢索一些與該對象綁定的信息,如URL,然后使用該信息運行一個函數。
我用來查找對象的代碼是:
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);
最后一行是我當前如何操縱對象。 數組objects
只是所有對象的數組。 問題是我不太了解Raycaster或intersectObjects是如何工作的,或者關於如何將任何信息綁定到對象以便稍后可以調用它。
實際上,您可以將自定義用戶數據設置為Three.js中的對象。 這里的關鍵是Object3D,它是所有場景圖形對象的基礎。 文檔有一個叫做的屬性
Object3D.userData;
這可以加載您選擇的對象,當Raycaster類檢索您的交叉時,您可以直接在該點訪問它。
初始化或運行時的setter
Object3D.userData = { URL: "http://myurl.com" };
碰撞中的吸氣劑
window.location = intersects[0].object.userData.URL;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.