javascript - GLTF加载对象拖拽使用三个js

标签 javascript jquery reactjs three.js

我尝试加载由多个元素组成的 gltf(对象),当我尝试选择并拖动对象时,我只能拖动一个元素。请帮我解决这个问题。

var loader = new THREE.GLTFLoader();
loader.load(‘W3030 / W3030.gltf’, (gltf) => {
  this.scene.add(gltf.scene);
  gltf.scene.scale.set(1, 1, 1);
  gltf.scene.traverse(function(object) {
    if (object.isMesh) objects.push(object);
    if (object.isMesh) objects.castShadow = true;
  });
});

GLTF 演示的屏幕截图:

拖动前:https://prnt.sc/pu940g

拖动后:https://prnt.sc/pu93g3

最佳答案

即使您加载单个 glTF 资源,视觉对象也可以由许多单独的 3D 对象组成。由于 THREE.DragControls 在对象级别工作,因此提到的结果是预期的行为。

解决此问题的最简单方法是在 Blender 等内容创建工具中合并对象的各个部分,然后导出新的 glTF。否则,您必须通过 Three.js 将单个网格合并为更大的网格。或者您更改 THREE.DragControls,以便它也能够根据其边界框选择组对象。

三.js R113

关于javascript - GLTF加载对象拖拽使用三个js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60151558/

相关文章:

javascript - 为什么 valueOf 原型(prototype)函数不起作用

javascript - Firefox 添加 <a xmlns ="http://www.w3.org/1999/xhtml">

javascript - 动画方 block

javascript - 如何在 react 中使用 tabs.executeScript

javascript - 如何使用 NPM 中不可用的外部库或 react/webpack 中的 bower?

javascript - 为什么 jQuery 的 .animate() 在完成动画之前运行 "complete"函数?

javascript从表中获取值

javascript - 你会如何在 React 中遍历字符串中的每个字符? (即没有 for 循环)

javascript - 如何使用 jQuery 包装带有混合 <a> 标签的文本节点?

reactjs - 是否可以在 MaterialUI 中为样式化组件使用自定义类名生成器?