我有三分。

在我的项目中,有3个主要事件: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;
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top