three.js中 如何给导入的Obj增加事件?

发现在给导入的obj无法增加点击事件,原因是obj是group类型。
所以需要给obj转成mesh类型。
但是不明白具体怎么实现,有大神讲解一下么

阅读 2.4k
2 个回答

场景不要添加object, 而是添加它的每一个child。

loader.load( 'model.obj', function ( object ) {
    object.traverse( function ( child ) {
        if ( child instanceof THREE.Mesh ) {
            scene.add( child );                
        }
    } );
} );

添加child,并且给每个child添加上材质

loader.load( 'models.obj', function ( object ) {
    object.traverse( function ( child ) {
        if ( child instanceof THREE.Mesh ) {
            var phongMaterial = new THREE.MeshPhongMaterial( { color: 0xffffff, specular: 0x111111, shininess: 5 } );
            child.material = phongMaterial;
        }
    } );
} );
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进