最近天天有人问这个问题啊
打开DragControls.js 改案例的话主意好你用的是jsm还是js里的
//第122行找到这个事件
function onDocumentMouseDown( event ) {
event.preventDefault();
_raycaster.setFromCamera( _mouse, _camera );
var intersects = _raycaster.intersectObjects( _objects, true );
if ( intersects.length > 0 ) {
//从这射线返回的mesh上获取上级的group
//如果多层group嵌套需要递归到最上层
_selected = intersects[ 0 ].object.parent;//这里加上.parent
console.log(_selected);
if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {
_inverseMatrix.getInverse( _selected.parent.matrixWorld );
_offset.copy( _intersection ).sub( _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) );
}
_domElement.style.cursor = 'move';
scope.dispatchEvent( { type: 'dragstart', object: _selected } );
}
}