【问题标题】:Uncaught TypeError: Cannot read property 'map' of undefined Three.js 62 version未捕获的类型错误:无法读取未定义的 Three.js 62 版本的属性“地图”
【发布时间】:2023-03-12 12:39:01
【问题描述】:

在使用 THREE.GeometryUtils.merge(obje, mesh); 时,任何人都可以在 three.js 版本 62 上帮助我解决这个问题吗?方法..

【问题讨论】:

    标签: three.js mesh


    【解决方案1】:

    尝试将 MeshFaceMaterial 与合并的网格一起使用时,我遇到了同样的错误。在我的情况下,我必须修改我合并的立方体每个面的 materialIndex。

    我假设 CubeGeometry 默认对所有面使用 materialIndex=0。它没有!立方体的每一面都有自己的索引。

    看看这个小提琴:http://jsfiddle.net/ThPPA/4/

    var materials = [
    new THREE.MeshBasicMaterial({
        color: 0x00ff00
    }),
    new THREE.MeshBasicMaterial({
        color: 0xffff00
    }),];
    
    var dummy = new THREE.Geometry();
    
    var geometry = new THREE.CubeGeometry(1, 1, 1);
    for(var i = 0; i < geometry.faces.length; i++) {
        geometry.faces[i].materialIndex = 0;
    }
    
    var cube1 = new THREE.Mesh(geometry);
    cube1.position.x -= 1;
    THREE.GeometryUtils.merge(dummy, cube1, 0);
    
    var cube2 = new THREE.Mesh(geometry);
    cube1.position.x += 1;
    THREE.GeometryUtils.merge(dummy, cube2, 1);
    
    var material = new THREE.MeshFaceMaterial(materials);
    var mesh = new THREE.Mesh(dummy, material);
    scene.add(mesh);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 2014-01-28
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      相关资源
      最近更新 更多