在新版的three.js中,您必须使用带有(items)materialas的简单数组,而不是multimaterial对象。以下是示例:
var几何=新三。BoxBufferGeometry(1,1,1);var材料=[新的三个。网格深度材料(),新的三个。网格常规材质(),新的三个。网格基本材质({线框:true}),新的三个。网格LambertMaterial({color:0xff0000}),新的三个。网格Phong材质({color:0x0000ff}),新的三个。网格标准材质({color:0x00ff00}),];var网格=新的三个。网格(几何体、材质);
同样重要!访问类似于:
if(Array.isArray(object.material)){对于(var m=0;m<对象材质长度;m++){对象.材质[m].颜色.设置(0xffffff);}}其他{object.material.color.set(0xffffff);}
在一些较旧版本的浏览器上isArray(isArray)
不支持。在这种情况下,请使用:
if(对象类型.material.length!==“未定义”){//您的代码}
我为这一改进感到高兴。我不喜欢太多的理论和复杂的编程范式。最好的方法是:尽可能简单。