如何使用Three.js发布54隐藏/显示对象?

thr*_*ict 2 three.js

我已将这个问题作为巨大问题的一部分提出,但建议部分提问.这是我上一个问题的一部分.我之前的问题是:在这里

我一直在使用Three.js Release 50并且能够在以下帮助下显示/隐藏对象(在我的应用程序中,它是一个网格孩子):

THREE.SceneUtils.traverseHierarchy(mesh,function(child){
var z = document.getElementById("cameras").selectedIndex*5 -10;
if (z === -10){
    child.visible = true;
} else if (child.position.z !== z){
    child.visible = false;
} else {

    child.visible = true;
};
}); 
Run Code Online (Sandbox Code Playgroud)

但是在使用版本54时,据说使用,object.traverse却发现很难相同.如何使用版本54替换上面的代码?我在使用版本54时遇到的错误是:

在此输入图像描述

请帮我解决这个问题.

2ph*_*pha 10

是'mesh'变量你是否将'traverseHierarchy'函数发送给Object3d?如果是这样,你试过'mesh.children',它应该返回一个子对象数组,或者你可以在网格对象上使用遍历函数.

请参阅:http://mrdoob.github.com/three.js/docs/54/#Reference/Core/Object3D

mesh.traverse(function(child) {
    var z = document.getElementById("cameras").selectedIndex * 5 - 10;
    if (z === -10) {
        child.visible = true;
    } else if (child.position.z !== z) {
        child.visible = false;
    } else {
        child.visible = true;
    };
});
Run Code Online (Sandbox Code Playgroud)