如何在three.js中单击按钮更改3D对象的颜色

如何在three.js中单击按钮更改3D对象的颜色,three.js,addeventlistener,gltf,Three.js,Addeventlistener,Gltf,我正试图第一步进入three.js,但我遇到了一个问题。我想在three.js中单击按钮时更改3d对象的颜色。我的目标是在3D环境中加载汽车gltf文件,当用户点击颜色按钮时,应该会改变汽车的颜色 因为我不知道如何改变汽车的颜色,所以,我试图用新车替换旧的汽车物体,但它不起作用。你能告诉我我在写东西吗?或者这是错误的方式 你能帮我一下吗,如何在点击按钮时在three.js中更改3d汽车的颜色 我的代码的相关部分: <script> loader = new THREE.GLT

我正试图第一步进入three.js,但我遇到了一个问题。我想在three.js中单击按钮时更改3d对象的颜色。我的目标是在3D环境中加载汽车gltf文件,当用户点击颜色按钮时,应该会改变汽车的颜色

因为我不知道如何改变汽车的颜色,所以,我试图用新车替换旧的汽车物体,但它不起作用。你能告诉我我在写东西吗?或者这是错误的方式

你能帮我一下吗,如何在点击按钮时在three.js中更改3d汽车的颜色

我的代码的相关部分:

<script>
    loader = new THREE.GLTFLoader();
        loader.load('./assets/Car1/scene.gltf', function(gltf){
            car = gltf.scene.children[0];
            car.position.set(0, 0, 0);
            car.scale.set(1000, 1000, 1000);
            scene.add(gltf.scene);
            renderer.render(scene,camera);
            animate();
        },
        function(error){
            console.log(error);
        }
        );
    
    window.onload = function() {
        var btn = document.getElementById('changeColor');
        btn.addEventListener('click', event => {
            loader.load('./assets/Car2/scene.gltf', function(gltf) {
                car = gltf.scene.children[0];
                car.position.set(0, 0, 0);
                car.scale.set(1000, 1000, 1000);
                scene.add(gltf.scene);
                renderer.render(scene,camera);
                animate();
            });    
        });
    }
    
    function animate() {`enter code here`
        renderer.render(scene,camera);
        requestAnimationFrame(animate);
    }
</script>

loader=new THREE.GLTFLoader();
loader.load('./assets/Car1/scene.gltf',函数(gltf){
car=gltf.scene.children[0];
car.position.set(0,0,0);
汽车秤组(1000,1000,1000);
scene.add(gltf.scene);
渲染器。渲染(场景、摄影机);
制作动画();
},
函数(错误){
console.log(错误);
}
);
window.onload=函数(){
var btn=document.getElementById('changeColor');
btn.addEventListener('click',事件=>{
loader.load('./assets/Car2/scene.gltf',函数(gltf){
car=gltf.scene.children[0];
car.position.set(0,0,0);
汽车秤组(1000,1000,1000);
scene.add(gltf.scene);
渲染器。渲染(场景、摄影机);
制作动画();
});    
});
}
函数animate(){`在此处输入代码`
渲染器。渲染(场景、摄影机);
请求动画帧(动画);
}

欢迎来到堆栈溢出。请花一点时间访问,特别是和。有关three.js特定的信息,请务必参考和-,通过查看示例代码和交叉参考文档,您可以学到很多。另外,请参阅,以获取关于场景创建和渲染的内容/方式的介绍。对于您的问题,首先,您需要将原始
gltf.scene
保存为全局变量。添加
var originalCar=null在全局范围内,然后
originalCar=gltf.scene操作。单击按钮,删除原始模型,然后将新模型添加到场景中。请参阅:,您将其用作
场景。删除(originalCar)。欢迎使用堆栈溢出。请花一点时间访问,特别是和。有关three.js特定的信息,请务必参考和-,通过查看示例代码和交叉参考文档,您可以学到很多。另外,请参阅,以获取关于场景创建和渲染的内容/方式的介绍。对于您的问题,首先,您需要将原始
gltf.scene
保存为全局变量。添加
var originalCar=null在全局范围内,然后
originalCar=gltf.scene操作。单击按钮,删除原始模型,然后将新模型添加到场景中。请参阅:,您将其用作
场景。删除(originalCar)