我正在尝试删除点光源(或者最好是任何光源),但我是ThreeJS的新手......我尝试了babylonScene.remove(object);
但是我得到一个错误,"无法调用遍历未定义& #34;或那些影响的东西。如果这是建议的方法,很高兴发布错误。
以下代码取自ThreeJS示例代码以及其他删除代码。
https://github.com/mrdoob/three.js/blob/master/examples/webgl_loader_babylon.html
var loader = new THREE.BabylonLoader( manager );
loader.load( data.src, function ( babylonScene ) {
babylonScene.traverse( function ( object ) {
if ( object instanceof THREE.Mesh ) {
object.material = new THREE.MeshPhongMaterial( {
color: Math.random() * 0xffffff
});
}
else if(object instanceof THREE.PointLight){
console.log("Removing PointLight");
object.remove();
}
});
...
}, onProgress, onError );
答案 0 :(得分:1)
最好的想法是将光线强度设置为0,这意味着你不会再看到它了:
var loader = new THREE.BabylonLoader( manager );
loader.load( data.src, function ( babylonScene ) {
babylonScene.traverse( function ( object ) {
if ( object instanceof THREE.Mesh ) {
object.material = new THREE.MeshPhongMaterial( {
color: Math.random() * 0xffffff
});
}
else if(object instanceof THREE.PointLight){
console.log("Removing PointLight");
object.intensity = 0
}
});
...
}, onProgress, onError );
希望这有帮助!