0
を移動しません:WebGLのTHREE:OBJの位置を変更することが、オブジェクトが、私は(私は後でそれを変更することができるように、グローバル変数として保存)、次のようにロードされたオブジェクトで働いています
model1 = null;
var mtlLoader = new THREE.MTLLoader();
mtlLoader.load("http://blabla.mtl", function(materials) {
materials.preload();
var objLoader = new THREE.OBJLoader();
objLoader.setMaterials(materials);
objLoader.load("http://blabla.obj", function(object) {
object.scale.x = 0.0004;
object.scale.y = 0.0004;
object.scale.z = 0.0004;
object.rotateX(Math.PI/2);
object.rotateZ(Math.PI/2);
object.add(new THREE.AxisHelper(2))
model1 = object; //save in global variables
scene.add(model1);
});
});
私はコンソールでMODEL1の位置が変化するが、オブジェクトがちょうどdoesnのことを見ることができます
function render(ms: number) {
if (lastTime) {
update((ms-lastTime)/1000)
}
lastTime = ms
requestAnimationFrame(render)
renderer.render(scene, camera)
}
var pos_current;
var pos_new;
var trans;
function update(dt: number) {
if (pause.on) return
//save position of box before it is transformed
pos_current = box.position.clone();
box.updatePosition()
//save new position of box
pos_new = box.position.clone();
//transform the 3D-model according to the box's transformation
trans = pos_current.sub(pos_new);
model1.position.add(trans);
console.log(model1.position)
:
私は位置のボックスの変化に基づいて、私はモデルの位置を変更したいレンダリングしていますまったく動かず、私は本当に理由を理解できません。
すべてのヘルプは非常に高く評価され:)
'object.matrixAutoUpdate = false;'をどこに設定しますか? 'position'、' rotation'、 'scale'プロパティはヘルパーに過ぎず、新しい行列を計算するときに使われます。 'object.matrix'プロパティを見て、' position'が更新されたときに更新されているかどうかを確認してください。 – TheJim01
いいえ私はそれをしません - しかし、実際には、実際には別の問題があるようですが、私は何も変更していませんが、これは上記の問題と関係しているかもしれません - 今はmodel1がnull obj-loader-functionなので、私はmodel1.positionまたはmodel1.matrixにアクセスすることはできません。 – Linda
omg - 私はちょうどそれを動作させました - モデル1の位置を更新できないのでもちろんありませんそれをロード完了:) – Linda