iPhone上的三级项目 - 事件问题(选择和拖动对象)
-
25-10-2019 - |
题
我有三分。
在我的项目中,有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;
不隶属于 StackOverflow