无法在three.js中更改按键上的对象素材

时间:2016-07-10 04:47:26

标签: javascript three.js

我试图在按键上更改.obj加载模型的材质,但由于某种原因,它只是按下按键时材料数组中的第一个元素。我确保循环是正确的。

这是DEMO,如果有解决方法,请告诉我

CODE

1 个答案:

答案 0 :(得分:0)

当发出keydown事件并且" C"按下键,我们遍历对象并检查索引的子节点是否为网格,以及其材质名称是否为#34; Book_Cover"。

但我们分配给颜色数组的材料没有名称所以条件中的代码

if (child.material.name == "Book_Cover") { /*...*/ }

没有按预期执行。

TL; DR

将name属性添加到材料中:

var MyColor = new THREE.MeshPhongMaterial({
        //...,
        name: "Book_Cover"
});