javascript - raycasting 和 onMouseClick 从 three.js 场景中删除网格的问题
问题描述
当我单击它们时,我试图从我的 three.js 场景中删除 4 个网格。我似乎无法弄清楚问题是什么。我可以更改几何材料,但是当我尝试删除它们时它不起作用。这是我下面的光线投射代码
var raycaster = new THREE.Raycaster();
var mouse = new THREE.Vector2();
function onMouseClick( event ) {
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;
raycaster.setFromCamera( mouse, camera );
var intersects = raycaster.intersectObjects([a, b, c, d]);
for ( var i = 0; i < intersects.length; i++ ) {
if (intersects[ i ].object.geometry.type == "PlaneGeometry") {
intersects[ i ].object.parent.remove(intersects[ i ].object);
}
}
}
解决方案
可能是intersects[ i ].object.parent
is null
,所以不会发生删除。
推荐阅读
- javascript - 从 node.js 服务器运行时,Bootstrap 4 Carousel 不起作用
- reactjs - 我可以使用什么方法来更新重复操作的状态?
- c++ - 编写一个简单的 C++ 线程安全日志库,如何使线程安全 << 运算符?
- c++ - 我怎么能处理一个窗口的消息?
- python - 使用 OpenCV 是否可以根据边缘检测对象
- c# - python调用c#接口
- excel-formula - 在多个单元格中搜索大写单词并在特定单元格中返回
- micronaut - 使用 micronaut 注入同一接口的不同实现
- amazon-web-services - AWS Lex Whatsapp Bot 不会继续下一个话语/意图,它会不断重复问候语
- java - 如果 Context-Type 包含“addHeader”,如何阻止请求