Browse Source

Fix picking with recursive mode

David Catuhe 6 năm trước cách đây
mục cha
commit
2180e6ebd1
1 tập tin đã thay đổi với 2 bổ sung2 xóa
  1. 2 2
      src/Inputs/scene.inputManager.ts

+ 2 - 2
src/Inputs/scene.inputManager.ts

@@ -266,7 +266,7 @@ export class InputManager {
         let scene = this._scene;
         let scene = this._scene;
         if (pickResult && pickResult.hit && pickResult.pickedMesh) {
         if (pickResult && pickResult.hit && pickResult.pickedMesh) {
             this._pickedDownMesh = pickResult.pickedMesh;
             this._pickedDownMesh = pickResult.pickedMesh;
-            var actionManager = pickResult.pickedMesh.actionManager;
+            var actionManager = pickResult.pickedMesh._getActionManagerForTrigger();
             if (actionManager) {
             if (actionManager) {
                 if (actionManager.hasPickTriggers) {
                 if (actionManager.hasPickTriggers) {
                     actionManager.processTrigger(Constants.ACTION_OnPickDownTrigger, ActionEvent.CreateNew(pickResult.pickedMesh, evt));
                     actionManager.processTrigger(Constants.ACTION_OnPickDownTrigger, ActionEvent.CreateNew(pickResult.pickedMesh, evt));
@@ -605,7 +605,7 @@ export class InputManager {
             }
             }
 
 
             if (!scene.pointerMovePredicate) {
             if (!scene.pointerMovePredicate) {
-                scene.pointerMovePredicate = (mesh: AbstractMesh): boolean => (mesh.isPickable && mesh.isVisible && mesh.isReady() && mesh.isEnabled() && (mesh.enablePointerMoveEvents || scene.constantlyUpdateMeshUnderPointer || (mesh.actionManager !== null && mesh.actionManager !== undefined)) && (!scene.cameraToUseForPointers || (scene.cameraToUseForPointers.layerMask & mesh.layerMask) !== 0));
+                scene.pointerMovePredicate = (mesh: AbstractMesh): boolean => (mesh.isPickable && mesh.isVisible && mesh.isReady() && mesh.isEnabled() && (mesh.enablePointerMoveEvents || scene.constantlyUpdateMeshUnderPointer || (mesh._getActionManagerForTrigger() != null)) && (!scene.cameraToUseForPointers || (scene.cameraToUseForPointers.layerMask & mesh.layerMask) !== 0));
             }
             }
 
 
             // Meshes
             // Meshes