首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能否与我的3d模型的不同组件交互反应js-3纤维?

我能否与我的3d模型的不同组件交互反应js-3纤维?
EN

Stack Overflow用户
提问于 2022-11-30 13:01:30
回答 2查看 36关注 0票数 0

我有三维球和连接周围作为不同的网格组件。我可以在没有这个球体的情况下在我的球体周围旋转链环网格吗?

我的3d模型

我想要分别与链接,网格和球面网格,旋转分别球面和链接。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-30 15:35:46

如果在jsx https://gltf.pmnd.rs/中使用gltf,则可以使用:

代码语言:javascript
复制
<mesh onClick={handleClick}/>

模型将被分解成声明式的部分,你可以一个一个地修改之后。

要通过拖动旋转网格的某些部分,最简单的方法是useGesture包,基本管道如下所示:

代码语言:javascript
复制
// mesh / object reference 
const ref = useRef()
// cursor movement XY delta
const delta = useRef(null)

useFrame(() => {
  if (delta !== null)
    ref.current.rotation.set([delta.x,delta.y, 0])
})

return ( <…
  <mesh ref={ref}/>
…/>)

请注意,您需要在某个地方设置delta.current = { x, y }

拖放https://use-gesture.netlify.app/docs/options/#transform的示例

票数 0
EN

Stack Overflow用户

发布于 2022-11-30 17:34:20

好吧,好吧,我找到了解决办法,我想感谢@antokhio,他让我这么想:)

我的解决方案:

代码语言:javascript
复制
useFrame((state, delta) => (ref.current.children[0].rotation.y -= 0.1001 * Math.PI / 180));
useFrame((state, delta) => (ref.current.children[1].rotation.z += 0.1001 * Math.PI / 180));

正如您所看到的,我们只是从具有3d对象组件的对象中获取子对象。所以..。就这样!谢谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74628228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档