Przeglądaj źródła

Update babylon.collisionCoordinator.ts

aWeirdo 8 lat temu
rodzic
commit
c2429c1661
1 zmienionych plików z 3 dodań i 5 usunięć
  1. 3 5
      src/Collisions/babylon.collisionCoordinator.ts

+ 3 - 5
src/Collisions/babylon.collisionCoordinator.ts

@@ -354,8 +354,7 @@ module BABYLON {
             collider.retry = 0;
             collider.initialVelocity = this._scaledVelocity;
             collider.initialPosition = this._scaledPosition;
-            
-            if(!collider.collisionFilter || collider.collisionFilter === 1) collider.collisionFilter = excludedMesh && excludedMesh.collisionFilter ? excludedMesh.collisionFilter  : 1;
+            collider._collisionMask = excludedMesh && excludedMesh._collisionMask ? excludedMesh._collisionMask : collider._collisionMask;
             
             this._collideWithWorld(this._scaledPosition, this._scaledVelocity, collider, maximumRetry, this._finalPosition, excludedMesh);
 
@@ -393,9 +392,8 @@ module BABYLON {
             // Check all meshes
             for (var index = 0; index < this._scene.meshes.length; index++) {
                 var mesh = this._scene.meshes[index];
-                
-                mesh.collisionFilter = mesh.collisionFilter ? mesh.collisionFilter : 1;
-                if (mesh.isEnabled() && mesh.checkCollisions && mesh.subMeshes && mesh !== excludedMesh && ((collider.collisionFilter === 1 && mesh.collisionFilter === 1)  || collider.collisionFilter > mesh.collisionFilter)) {
+                if(!mesh._collisionGroup) mesh._collisionGroup = -1;
+                if (mesh.isEnabled() && mesh.checkCollisions && mesh.subMeshes && mesh !== excludedMesh &&  ((collider._collisionMask & mesh._collisionGroup) !== 0)) {
                     mesh._checkCollision(collider);
                 }
             }