Javascript Three.js GridHelper:如何隐藏/显示网格?

Javascript Three.js GridHelper:如何隐藏/显示网格?,javascript,three.js,Javascript,Three.js,我正在使用将平面和栅格添加到我的3d场景中: // PLANE XY static var gridplaneSize = 20; var color = 0xFFDCBB; var plGeometry = new THREE.PlaneGeometry(gridplaneSize, gridplaneSize); var plMaterial = new THREE.MeshBasicMaterial( {color:color, ambient:color, side:THREE.Doub

我正在使用将平面和栅格添加到我的3d场景中:

// PLANE XY static
var gridplaneSize = 20;
var color = 0xFFDCBB;
var plGeometry = new THREE.PlaneGeometry(gridplaneSize, gridplaneSize);
var plMaterial = new THREE.MeshBasicMaterial( {color:color, ambient:color, side:THREE.DoubleSide, opacity:0.5, transparent:true, depthWrite: false } );
var planeMesh_xy = new THREE.Mesh(plGeometry, plMaterial);
planeMesh_xy.rotation.x = -Math.PI/2;
scene.add(planeMesh_xy);
planeMesh_xy.receiveShadow = true;
// GRID XY static
var gridstep = 1;
var gridcolor = 0xCCCCCC;
var gridHelper_xy = new THREE.GridHelper(gridplaneSize/2, gridstep);
gridHelper_xy.position = new THREE.Vector3(0, 0, 0);
gridHelper_xy.setColors( new THREE.Color(gridcolor), new THREE.Color(gridcolor) );
scene.add(gridHelper_xy);
然后我想确定平面或网格是否可见

这适用于飞机:

planeMesh_xy.visible = false;
但不适用于电网:

gridHelper_xy.visible = false; // not working
我还尝试了一些变通办法,但没有奏效:

gridHelper_xy.material.transparent = true;
gridHelper_xy.material.opacity = 0;
gridHelper_xy.parent.visible = false;

有人能告诉我如何隐藏网格吗?

当您设置对象的
可见
标志时,应该发生的是它的所有子对象都应该继承该标志

在r71中,这应该是开箱即用的(看看问题)

在r65中,您必须遍历层次结构,在所有子部件上设置标志:

object.traverse ( function (child) {

    child.visible = false;

}

根据这个问题,如果您在r71上,这应该可以工作,因为所有的孩子都应该继承这个标志。您是否尝试过
scene.remove(gridHelper_xy.name)?忘了提到,我在
r65
@SamyBencherif是的,我应该做移除解决方案吗?我记得这是在另一个有其他对象的项目中发生的。@Matheretter我从来没有实际使用过三个js。我的建议更多的是猜测。什么是
r65
?r65是three.js的版本号。我有r68投掷错误的问题。我现在就试试r71。