0
각도 4 환경에서 JSONLoader를 사용하려고 시도했지만 작동하지 않는 경우 3 단계를 구현하려고하는데 Json에 대한 경로가 올바르게 정의되어 있지만 추가 할 수 없습니다. 현장 라인에 정의되지 않은의 "설정할 수 없습니다 재산"메시는 "현재JSONLoader를 사용하여 Three.js 및 Angular4
let material = new THREE.MeshBasicMaterial({ color : 0xFFFFFF, wireframe: true });
let geometry = new THREE.JSONLoader();
geometry.load("./maniqui4.json", function(geometry, materials){
this.mesh = new THREE.Mesh(geometry, material);
this.scene.add(this.mesh);
});
에서 점점 오류 메신저는
오류가 (this.mesh) this.scene.add 라인에,
상자 기하학을 추가하려고 시도했지만 괜찮 았지만 JSONLoader로는 아무런 반응이 없었습니다.
he 재) (이 같은 당신의 init() 메소드의 시작 라인 var scope = this;
추가
init(){
var scope = this;
// rest of your code
}
다음 초기화 내부
scope
으로
this
에 대한 모든 참조를 변경 내 구성 요소
import { Component, OnInit, ElementRef, ViewChild} from '@angular/core';
import * as THREE from 'three';
@Component({
selector: 'canvasRender',
templateUrl: './canvas.component.html',
})
export class canvasComponent{
@ViewChild('container') elementRef: ElementRef;
private container : HTMLElement;
private scene: THREE.Scene;
private camera: THREE.PerspectiveCamera;
private renderer: THREE.WebGLRenderer;
private mesh : THREE.Mesh;
constructor(){
console.log(THREE);
}
ngOnInit(){
this.container = this.elementRef.nativeElement;
console.log(this.container);
this.init();
}
init(){
let screen = {
width : 100,
height : 300
},
view = {
angle : 45,
aspect : screen.width/screen.height,
near : 0.1,
far : 1000
};
this.scene = new THREE.Scene();
this.camera = new THREE.PerspectiveCamera(view.angle, view.aspect, view. near, view.far);
this.renderer = new THREE.WebGLRenderer();
this.scene.add(this.camera);
this.camera.position.set(10,10,10);
this.camera.lookAt(new THREE.Vector3(0,0,0));
this.renderer.setSize(screen.width, screen.height);
this.container.appendChild(this.renderer.domElement);
let material = new THREE.MeshBasicMaterial({ color : 0xFFFFFF, wireframe: true });
let geometry = new THREE.JSONLoader();
geometry.load("./maniqui4.json", function(geometry, materials){
this.mesh = new THREE.Mesh(geometry, material);
this.scene.add(this.mesh);
});
this.render();
}
render(){
};
animate(){
};
};