4

我刚刚开始查看 Three.js 并且对对象移动有疑问。在 XNA/ShparDX 中,您可以执行类似以下代码的操作,其中对象可以相对于其方向向前移动。因此,如果对象向下看,这会将其向下移动。如果它向右看,它会向右移动。可以在这里看到一个视频示例,并且是页面上的最后一个视频。

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

根据这个答案,我尝试了以下方法。当我按下按键触发它时,它什么也没做。

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 中可用的成员和函数复制它时没有成功。如果可能的话,有人可以告诉我吗?谢谢。

4

1 回答 1

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

要前进,请使用translateZ( delta ).

如果你只是学习,最好不要乱来object.matrix,除非你真的知道自己在做什么。设置position, rotation, 和scale代替。

于 2013-02-12T09:39:14.567 回答