Я пытаюсь следовать этому руководству , чтобы импортировать windmill.obj
в ТРИ. js. Но у меня есть «THREE.Object3D.add: объект не является экземпляром THREE.Object3D».
Как видите, cube
может отображаться, но windmill.obj
не отображается.
Есть идеи, почему учебник может импортировать файл без ошибок, но тот же файл не распознается как THREE.Object3D в моем коде? Спасибо
<body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r79/three.min.js"></script>
<script type="module">
import {OrbitControls} from 'https://threejsfundamentals.org/threejs/resources/threejs/r115/examples/jsm/controls/OrbitControls.js';
import {OBJLoader2} from 'https://threejsfundamentals.org/threejs/resources/threejs/r115/examples/jsm/loaders/OBJLoader2.js';
let scene, renderer, camera
let cube
let rotateHeadOffset = 0
function init() {
scene = new THREE.Scene()
renderer = new THREE.WebGLRenderer()
renderer.setSize(window.innerWidth, window.innerHeight)
document.body.appendChild(renderer.domElement)
camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 100)
camera.position.set(10, 10, 10)
camera.lookAt(scene.position)
// cube
cube = new THREE.Mesh(new THREE.BoxGeometry(1, 1, 1))
scene.add(cube)
// instantiate the loader
let loader = new OBJLoader2();
function callbackOnLoad ( object3d ) {
scene.add( object3d );
}
loader.load("https://threejsfundamentals.org/threejs/resources/models/windmill/windmill.obj", callbackOnLoad, null, null, null );
}
function render() {
requestAnimationFrame(render)
renderer.render(scene, camera)
}
init()
render()
</script>
</body>