我刚刚开始关注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中提供的成员和函数复制它。有人可以告诉我是否有可能吗?谢谢。
答案 0 :(得分:2)
mesh.translateX( delta );
mesh.translateY( delta );
mesh.translateZ( delta );
要继续前进,请使用translateZ( delta )
。
如果你只是在学习,最好不要混淆object.matrix
,除非你真的知道自己在做什么。请改为设置position
,rotation
和scale
。