0
すべてのレンダリング/アニメーション関数呼び出しでインポートされたオブジェクト(.obj)を移動したいとします。 したがって、loader.load
の外にアクセスするためにオブジェクトのコピーを作成しましたが、companion.position
と呼び出すたびにこのエラーが発生します。またThree.js | loader.loadの外でインポートされたオブジェクトプロパティにアクセスできません
(companion
がグローバル変数である)、Iは、関数をレンダリングでobject.traverse
を試して、私は(トラバースがエラー位置に置き換えてしまった)同じエラーを得ました。
助けてください。前もって感謝します。
ここでは、objをロードしてcompanion
にコピーしています。
var mtlLoader = new THREE.MTLLoader();
mtlLoader.setPath('obj/');
mtlLoader.load('satellite.mtl', function(materials) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.setPath('obj/');
objLoader.load('satellite.obj', function(object) {
object.position.z = 300;
object.scale.set(0.25, 0.25, 0.25);
object.rotation.y = Math.PI;
object.traverse(function(child) {
if (child instanceof THREE.Mesh) {
child.castShadow = true;
if (child.material !== undefined) child.material.side = THREE.DoubleSide;
}
});
companion = object;
scene.add(object);
});
});
:ロード・コードでは
を
を交換、その後、あなたの
animate()
機能であなたのような何かを行うことができますあなたのアプローチは助けになりました。しかし、「THREE.Group」の代わりにObject3Dを使用しました。 Yayyありがとう:D –