【发布时间】:2016-11-13 20:21:05
【问题描述】:
我已经编写了一个 WebGL 脚本,该脚本使用 jsonloader 和 three.js 显示多个网格,现在我想添加 MouseOver 和 onClick 事件。第一个是当鼠标悬停在网格上时简单地改变网格的颜色:
function render() {
requestAnimationFrame(render);
mesh.rotation.z += 0.090;
raycaster.setFromCamera(mouse, camera);
var intersects = raycaster.intersectObjects(scene.children);
for (var i = 0; i < intersects.length; i++) {
intersects[i].object.material.color.set(0xff0000);
}
renderer.render(scene, camera);
}
上面的渲染功能允许我通过将鼠标悬停在任何网格上来将其颜色更改为红色。我已经尝试了几个 if/else 变体来尝试只有当鼠标悬停在网格上时才会产生这种效果,但我无法让它工作——它只是保持红色。谁能建议我如何修改我的脚本?
谢谢。
【问题讨论】:
-
为什么要在每行之间留一个空格?为什么要使用标签?
-
这是我养成的坏习惯,抱歉。我有时会从其他文件中复制并粘贴一些代码,然后留出空格来标识我添加的代码。
标签: javascript three.js raycasting