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