Почему OBJLoader не работает с three.js ? es6

#reactjs #three.js #objloader

#reactjs #three.js #objloader

Вопрос:

Я хотел бы загрузить объект «.obj» с помощью three.js .

Мой код :

 /********** Imports **********/
import React, { PureComponent } from 'react';
import * as THREE from 'three';
import OBJLoader from 'three-obj-loader';
OBJLoader('THREE');

export class Satellites extends PureComponent {

  componentDidMount() {
    // Satellite Sphere
    this.geometry = new THREE.SphereGeometry( 10, 32, 32 );
    // Texture
    this.texture = new THREE.OBJLoader().load
    ('textures/Satellite.obj',
      texture => {
        this.sat = new THREE.MeshBasicMaterial( { map: this.texture } );
        this.sphere = new THREE.Mesh( this.geometry, this.sat );
        this.props.scene.add( this.sphere );
      }
    )
  }

  render() {
    return null;
  }
}  

Ошибка :

 Attempted import error: 'OBJLoader' is not exported from 'three' (imported as 'THREE').
  

Итак, я использую этот пакет
Я добавляю эту строку, импортирую OBJLoader из ‘three-obj-loader’;

Но ничего… У меня все еще та же ошибка с этим импортом!

Подробнее:https://github.com/SolenneD/earth-react

Scene.js и Satellite.js (это первая версия, поэтому нет этого кода, но есть texture .obj)

Спасибо за помощь.

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

1. Да, OBJLoader не является частью three.js ядра. Вы можете попробовать преобразовать OBJLoader в модуль самостоятельно или использовать один из существующих npm пакетов. Однако последний подход иногда проблематичен, поскольку пакеты не всегда хорошо поддерживаются. Какая ошибка возникает при использовании three-object-loader ? Ваш текущий общий код, к сожалению, бесполезен в этом контексте.

2. Я отредактировал свой вопрос, спасибо!

3. Если вы используете npm пакет, этого должно быть достаточно для вызова new OBJLoader() . Обратите внимание на отсутствующее THREE пространство имен.

4. Я уже вызывал new OBJLoader () с this.texture = new THREE.OBJLoader().load помощью. С моим кодом (я отредактировал с помощью импорта) У меня та же ошибка : Attempted import error: 'OBJLoader' is not exported from 'three' (imported as 'THREE').

5. Можете ли вы поделиться проблемным кодом в качестве живого примера ? Можете ли вы хотя бы обновить свой репозиторий кодом, используемым OBJLoader ? Я проверил ваш репозиторий, но Satellites.js кажется, представляет предыдущую версию.