2017-10-24 4 views
0

안녕하세요, 내 aframe 구성 요소에 메쉬를 추가하려고했지만 비슷한 간단한 코드로도 이상한 오류가 나타납니다. 이aframe 오류 : Entity.setObject3D가 THREE.Object3D 인스턴스가 아닌 개체와 함께 호출되었습니다.

AFRAME.registerComponent('mysquare', { 
     init: function(){ 
     var el = this.el; 

     var box = new THREE.BoxGeometry(40, 5, 40); 
     var boxMesh = new THREE.Mesh(box); 
     boxMesh.position.set(25, 0, 25); 
     el.setObject3D("mesh", boxMesh); 

     } 
    }); 

home.html을

<ion-content> 
     <div></div> 
     <a-scene embedded> 
     <a-entity mysquare></a-entity> 
     </a-scene> 
</ion-content> 

오류 메시지

Error: Entity.setObject3D was called with an object that was not an instance of THREE.Object3D .

는 또한 01 시도기능을 사용하지만 동일한 메시지가 나타납니다. 어떻게 가능합니까?

ionic 2 + aframe v.0.7.1로 내 응용 프로그램을 개발하십시오. 나도 0.5.0 버전을 시도했지만 동일한 문제가있다

+0

흠, 완벽하게 맞습니다. 아마도 코드베이스의 다른 곳에서 오류가 발생했을 것입니다. 온전한 체크를 위해서'setObject3D ('mesh', new THREE.Object3D())'를 시도해 보라. – ngokevin

+0

쓴 걸 잊어 버렸지 만, 이미 이걸 시도해 봤어. 동일한 오류, 사실 나는 그것이 코드가 아닌 것 같아요. 이온 2와 일종의 비호 환성이 존재할 수 있다고 생각합니까? –

답변

0

마침내 내가 직접 threejs 라이브러리를 포함하지 않고 문제를 해결했습니다.

내 수입 부분이 내가 처음 가져 오기를 삭제 한

import * as THREE from 'three'; 
declare var AFRAME; 

지금은 모든 것이 괜찮아했다. 이제이 모드에서 3d 객체를 만들 수 있습니다.

el.setObject3D("mesh", new AFRAME.THREE.Object3D());