Javascript Three.js GridHelper:如何隐藏/显示网格?
我正在使用将平面和栅格添加到我的3d场景中: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
// 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。