我如何在three.js中与场景中的对象进行交互
How can I interact with objects in the scene in three.js?
例如,如果我用鼠标指向场景中的一个圆圈,就可以检测到它。我到处都找遍了,似乎什么也没找到。Three.js文档也没有真正讨论这个
首先,你应该添加事件监听器,如' mousmove ', 'mousedown'。
document.addEventListener('mousedown', onDocumentMouseDown, false);
document.addEventListener('mousemove', onDocumentMouseMove, false);
当你将鼠标移动到圆圈上时,你想要一个事件。让我们设置一个警告当鼠标移动到那个圆圈上时你会收到一个警告
function onDocumentMouseDown(event) {
event.preventDefault();
mouseYOnMouseDown = event.clientY - windowHalfY;
mouseXOnMouseDown = event.clientX - windowHalfX;
var vector = new THREE.Vector3((event.clientX / window.innerWidth) * 2 - 1, -(event.clientY / window.innerHeight) * 2 + 1, 0.5);
vector = vector.unproject(camera);
var raycaster = new THREE.Raycaster(camera.position, vector.sub(camera.position).normalize());
var intersects = raycaster.intersectObjects(circleObj, true); // Circle element which you want to identify
if (intersects.length > 0) {
alert("Mouse on Circle");
}
}
在three.js中,我们使用光线投射器来指向任何物体。查看three.js文档中的光线投射器
相关文章:
- 通过服务与多级对象交互
- 无法与使用 jquery 追加添加的 dom 对象进行交互
- 在没有交互的情况下更改对象的样式
- 如何使用角度 js 对 JSON 对象进行交互
- 了解 knockout 如何通过 push.apply 与 javascript 对象交互
- Ajax,JSON对象与php的交互
- 如何正确地与对象内部的父函数/对象交互
- 使用Javascript创建虚拟交互对象
- Javascript对象交互(OOP)
- 通过Javascript对复杂JSON对象进行交互的最简单方法
- 小程序和对象标记JSP交互
- 如何在立方体对象中交互子对象
- 如何在HTML5对象或iframe中禁用用户交互/活动
- JavaScript Image对象如何与浏览器缓存交互
- 我如何在three.js中与场景中的对象进行交互
- 在显示JSON对象之前与它交互
- 在聚合物中使用元素之间的交互作用向数组中添加一个对象
- 与Javascript对象交互,其中键为数字日期/时间
- 如何触发交互.js事件/将所有可拖动对象恢复到默认位置(x : 0 , y : 0 )
- 使用JavaScript与对象进行交互