1
在THREE.js中,我嘗試根據鼠標位置在屏幕上移動對象。在看了一些examples之後,它看起來非常艱難。下面是我從一個例子中借用的一些代碼,其中大部分是針對我需要的:THREE.js - 使用旋轉/縮放的父級相對於屏幕移動對象
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
應用於運動? 我仍然試圖圍繞這個東西包裹我的頭。任何幫助讚賞。
棘手的問題確實。 – mrdoob