Борется с тремя волоконными компонентами React

#reactjs #three.js #react-three-fiber

#reactjs #three.js #react-трехволоконный

Вопрос:

У меня есть json, заполненный информацией о продукте, путем к файлам fbx и т. Д. Теперь я хочу создать динамический компонент на основе моего json-файла, который загружает мои fbx-файлы на мой холст. Позже я захочу ссылаться на объекты, группировать их и анимировать. Это не было проблемой в native threejs с react. Но я понятия не имею, как добиться этого в r3f.

Я создал компонент, загружающий 3D-файлы, но уже испытывал трудности с их ссылками и анимацией.

С r3f все кажется таким излишне сложным.

Можете ли вы сказать мне, что было бы здесь наилучшей практикой?

Ответ №1:

вы можете просто поместить ссылку на что-то и анимировать его с помощью useframe, например: https://codesandbox.io/s/khrmaterialsvariants-forked-mz11v?file=/src/App.js я действительно не вижу сложности, один только этот пример был бы в 2-3 раза больше обычного.

вы используете useLoader(FBXLoader, url) (или drei’s useFBX shotcut) для загрузки модели. но когда вы сбрасываете содержимое в сцену в виде черного ящика <primitive object={obj} /> , тогда вы должны пройти через материал, чтобы найти его обратно, точно так же, как в three. вы можете поместить ссылку на примитив и просмотреть его содержимое. я бы все же рекомендовал использовать gltf и особенно инструмент gltfjsx, который делает все это тривиальным.

в целом, разницы нет. вы можете использовать точно такой же код, который вы бы написали в обычном третьем. вам не нужен загрузчик. но этот материал может сэкономить вам 50% от обычного шаблона, вот почему он существует.

Комментарии:

1. спасибо за ответ. Я понимаю, что это многое упрощает. Раньше я работал с классами в React вместо функций. Должен ли я снова привыкать к функциональному рабочему процессу?

2. Можете ли вы создать простую кнопку в вашем примере, преобразующую башмак? Я думаю, это мне очень помогло бы.