三.js iPhone上的项目-事件问题(选择和拖动对象)



我用three.js构建项目…可以拖动对象的画布并且还可以使用相机视图……有一个著名的例子——"可拖拽立方体",我的项目也很相似。

在我的项目有三个主要事件:mouseup/mousedown/mousemove

一切都很好....但现在我要在iPhone上运行这段代码,改变我的事件与touchstart/touchmove/touchend

移动对象函数似乎工作得很好,但当我试图通过点击他来选择对象时,它总是被选中的同一个对象。而不是我所指的那个....

我想问题出在这个函数上:

function onDocumentMouseDown( event ) {
            event.preventDefault();
            var vector = new THREE.Vector3( mouse.x, mouse.y, 0.5 );
            projector.unprojectVector( vector, camera );
            var ray = new THREE.Ray( camera.position, vector.subSelf( camera.position ).normalize() );
            var intersects = ray.intersectObjects( objects );
            if ( intersects.length > 0 ) {
                SELECTED = intersects[ 0 ].object;
                var intersects = ray.intersectObject( plane );
                offset.copy( intersects[ 0 ].point ).subSelf( plane.position );
            }
}

有谁知道是什么问题吗?

在这一行:

var vector = new THREE.Vector3( mouse.x, mouse.y, 0.5 );

你使用鼠标Vector2对象,但你没有初始化它。

应该这样做:

mouse.x = +(event.targetTouches[0].pageX / window.innerwidth) * 2 +-1;
mouse.y = -(event.targetTouches[0].pageY / window.innerHeight) * 2 + 1;

最新更新