Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

使用场景:
场景默认有个网格,坐标线,环境光

每次加载一个不同的场景,需要去清除场景中里面的scene.children对象(非网格,坐标线,环境光), 如果不是深拷贝,每次移除一个children的,foreach的length就会发生变化,部分想移除的children 就没移除

var objects =this.scene.children;

// 清除场景非默认初始化数据

objects.forEach(obj => {

if(obj.name ==='grid'|| obj.name ==='axisHelper'|| obj.name ==='ambientLight') return

this.removeObject(obj)

})


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
3.0k views
Welcome To Ask or Share your Answers For Others

1 Answer

用filter吧

this.scene.children = this.scene.children.filter(obj => {
    return obj.name ==='grid'|| obj.name ==='axisHelper'|| obj.name ==='ambientLight';
})

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...