在THREE.js中,我试图根据鼠标位置在屏幕上移动物体。在看了一些examples后,它似乎相当紧张。以下是我从其中一个主要用于我需要的示例中借用的一些代码:
function mouseMove(e){
mouse2D.x = ( (e.pageX-canvas.offsetParent.offsetLeft) / canvas.clientWidth ) * 2 - 1;
mouse2D.y = - ( (e.pageY-canvas.offsetParent.offsetTop) / canvas.clientHeight ) * 2 + 1;
if (selected) {
var ray = projector.pickingRay(mouse2D, PGL._camera).ray;
var targetPos = ray.direction.clone().addSelf(ray.origin);
targetPos.subSelf(_offset);
obj.position.x = initPos.x + targetPos.x;
obj.position.y = initPos.y + targetPos.y;
}
}
这适用于在场景中移动直接孩子。问题是尝试移动具有旋转和/或缩放的父对象的对象。你会怎么处理?将对象matrixRotationWorld
应用于运动可能吗?
我仍然试图绕过这些东西。任何帮助表示赞赏。
答案 0 :(得分:0)