[英]How to visit the elements of the scene in three.js
我想訪問場景中的所有元素。 這些元素是類型為THREE.Object3D,THREE.Mesh的對象。 一些元素具有一個稱為children的字段,這是其他元素的數組。 因此,我們可以得出結論,場景(也有children字段)是一棵樹。
有了這些知識,我想對場景對象中存在的每個元素進行深度優先搜索訪問,以設置一些屬性。 這是我的代碼:
function setShadowRenderer( element ) {
element.receiveShadow = true;
element.castShadow = true;
if ( element.children !== undefined ||
element.children !== [] )
for ( i = 0; i < element.children.length; i++ )
setShadowRenderer( element.children[ i ] );
console.log( C++ );
}
現在,這段代碼導致了無限的計算,它永遠不會結束。 這怎么可能?
我認為這可以完成您想要的工作:
if (object instanceof THREE.Object3D)
{
object.traverse (function (mesh)
{
if (! (mesh instanceof THREE.Mesh)) return;
mesh.castShadow = true;
mesh.receiveShadow = true;
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.