Angular2アプリケーションで動作するOrbitControlsを取得できません。私はボックスでシーンを表示するのに成功しましたが、カメラを動かすことができません。OrbitControls Angular2とThree.jsで定義されていません
OrbitComponent(軌道制御を定義する)がundefined
の値を返していることがわかりました。
orbit.component.ts
import { Directive, Input } from '@angular/core';
import * as THREE from 'three';
import { OrbitControls } from 'three-orbit-controls';
@Directive({ selector: 'three-orbit-controls' })
export class OrbitControlsComponent {
@Input() enabled: boolean = true;
controls: OrbitControls;
ngOnInit() {
console.log("hello");
}
setupControls(camera, renderer) {
this.controls = new OrbitControls(camera, renderer.domElement);
this.controls.enabled = this.enabled;
}
updateControls(scene, camera) {
this.controls.update();
}
}
import { Directive, ElementRef, Input, ContentChild, ViewChild } from '@angular/core';
import * as THREE from 'three';
import { OrbitControlsComponent } from './controls/orbit.component';
@Directive({ selector: 'three-renderer' })
export class RendererComponent {
@ContentChild(OrbitControlsComponent) orbitComponent: OrbitControlsComponent;
constructor(private element: ElementRef) { }
ngAfterContentInit() {
console.log("orbitComponent undefined?", this.orbitComponent === undefined);
// TODO: OrbitControls is NULL!
if (this.orbitComponent) {
this.orbitComponent.setupControls(this.camera, this.renderer);
}
this.render();
}
}
renderer.component.tsはどうすればOrbitComponentオブジェクトを返すことができますか?
シーンを表示すると、シーンにOrbitControlComponentを注入できません。 – Tony
遅れて申し訳ありません。もっと情報をくれませんか?プロセスは同じでなければなりません:SceneComponentのtsファイルのHTMLと@ViewChildのタグ。 OrbitControlComponentモジュールを宣言するのを忘れないでください! –