2013-02-12 5 views
2

저는 Three.js를 살펴보고 객체 이동에 관한 질문을했습니다. XNA/ShparDX에서는 객체가 방향에 상대적으로 앞으로 움직일 수있는 아래 코드와 같은 것을 할 수 있습니다. 따라서 물체가 내려다 보면이 물체가 아래로 이동합니다. 오른쪽으로 보면 오른쪽으로 이동합니다. 이것에 대한 비디오 예제는 here으로 볼 수 있으며 페이지의 마지막 비디오입니다.Three.js에서 객체 회전에 상대적으로 앞으로 이동

float speed = 0.15f; 
Vector3 velocity = objectMatrix.Forward * speed; 
objectMatrix *= Matrix.CreateTranslation(velocity); 

나는 this answer을 기반으로 다음을 시도했다. 내가 키를 눌렀을 때 아무 것도하지 않았다.

var STEP = 10; 
object.matrixWorld.identity(); 
object.matrixWorld.multiplySelf(three.Matrix4.translationMatrix(object.position.x, object.position.y, object.position.z + STEP)); 
object.updateMatrixWorld(); 

Three.js에서 사용할 수있는 멤버 및 기능을 사용하여이 복제에 성공하지 못했습니다. 가능하면 누군가가 나를 보여줄 수 있습니까? 감사.

답변

2
mesh.translateX(delta); 
mesh.translateY(delta); 
mesh.translateZ(delta); 

앞으로 이동하려면 translateZ(delta)을 사용하십시오.

학습하는 경우 실제로 무엇을하는지 모르는 경우 object.matrix을 사용하지 않는 것이 가장 좋습니다. position, rotationscale을 대신 설정하십시오.

+1

필자는 분명히 행렬을 처음 사용하지는 않지만 설득력있게 대답하는 것으로 보입니다. 누구든지 추가할만한 것이 있지만 올바른 대답처럼 보이는 경우에 대비하여 질문을 공개하겠습니다. – Dragonseer

관련 문제