相对于Three.js中的对象旋转向前移动

时间:2013-02-12 07:59:18

标签: three.js

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

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中提供的成员和函数复制它。有人可以告诉我是否有可能吗?谢谢。

1 个答案:

答案 0 :(得分:2)

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

要继续前进,请使用translateZ( delta )

如果你只是在学习,最好不要混淆object.matrix,除非你真的知道自己在做什么。请改为设置positionrotationscale