【问题标题】:Struggling with React Three Fiber Components与 React 三纤维组件作斗争
【发布时间】:2021-03-08 06:18:38
【问题描述】:

我有一个包含产品信息、fbx 文件路径等的 json。现在我想基于我的 json 文件构建一个动态组件,它将我的 fbx 文件加载到我的画布上。我稍后想引用这些对象,对它们进行分组并为它们设置动画。 这在带有 react 的 nativethreejs 中没有问题。但我不知道如何在 r3f 中实现这一点。

我创建了一个加载 3d 文件的组件,但一直在努力专门引用和动画化它们。

使用 r3f 似乎一切都变得如此不必要。

您能告诉我这里的最佳做法是什么吗?

【问题讨论】:

    标签: reactjs three.js react-three-fiber


    【解决方案1】:

    您可以简单地在某物上放置一个 ref 并通过 useframe 对其进行动画处理,如下所示:https://codesandbox.io/s/khrmaterialsvariants-forked-mz11v?file=/src/App.js 我并没有真正看到复杂性,仅此示例通常是 2-3 倍。

    您使用 useLoader(FBXLoader, url)(或 drei 的 useFBX shotcut)来加载模型。但是当您通过<primitive object={obj} /> 将内容作为黑盒转储到场景中时,您必须遍历内容才能找到它,就像在三个中一样。您可以对原语进行引用并深入了解其内容。我仍然建议使用 gltf,尤其是 gltfjsx 工具,这一切都变得微不足道。

    总的来说,没有区别。您可以使用与纯三中编写的完全相同的代码。你不需要useLoader。但是这些东西可以为你节省 50% 的普通样板文件,这就是它存在的原因。

    【讨论】:

    • 感谢您的回答。我明白,它使很多事情变得更容易。我曾经在 React 中使用类而不是函数。我是否必须再次习惯功能性工作流程?
    • 你能在你的例子中提供一个简单的按钮来改变鞋子吗?我认为这对我有很大帮助。
    猜你喜欢
    • 2019-08-10
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多