diff --git a/src/core/Raycaster.js b/src/core/Raycaster.js index ef72c6b518a81..f6cc047d1530d 100644 --- a/src/core/Raycaster.js +++ b/src/core/Raycaster.js @@ -101,13 +101,15 @@ function ascSort( a, b ) { function intersect( object, raycaster, intersects, recursive ) { + let stopTraversal = false; + if ( object.layers.test( raycaster.layers ) ) { - object.raycast( raycaster, intersects ); + stopTraversal = object.raycast( raycaster, intersects ); } - if ( recursive === true ) { + if ( recursive === true && stopTraversal !== true ) { const children = object.children;