Javascript 在three.js中遍历JSON对象
我正在学习使用遍历来更改JSON对象的颜色。可以找到im使用的JSON对象。我的代码如下:Javascript 在three.js中遍历JSON对象,javascript,json,Javascript,Json,我正在学习使用遍历来更改JSON对象的颜色。可以找到im使用的JSON对象。我的代码如下: <script> var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera( 75, window.innerWidth/window.innerHeight, 0.1, 1000 ); var renderer = new THREE.WebGLRenderer(); var controls = new
<script>
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75,
window.innerWidth/window.innerHeight, 0.1, 1000 );
var renderer = new THREE.WebGLRenderer();
var controls = new THREE.OrbitControls( camera );
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild(renderer.domElement);
var loader = new THREE.ObjectLoader();
loader.load ("models/shoe4.json", function (obj) {
obj.traverse( function (child){
if (child.materials.name == "material-fabric"){
child.materials.color = new THREE.Color( 0xff0000 );
}
})
scene.add (obj);
});
camera.position.z = 100;
var render = function(){
requestAnimationFrame( render );
renderer.render( scene, camera );
}
render();
</script>
我把鞋子放回屏幕上。遍历部分有什么问题吗?的可能重复我认为它是重复的。
child.materials
是一个数组,因此没有.name
属性。您必须执行另一个循环,通过子.materials
数组循环以实现您想要的结果
obj.traverse( function (child){
if (child.materials.name == "material-fabric"){
child.materials.color = new THREE.Color( 0xff0000 );
}
})