瀏覽代碼

onCollide for meshes

When mesh is using the moveWithCollisions, no callback could be set.
It is now possible to define a callback for mesh collision.
Raanan Weber 10 年之前
父節點
當前提交
c39ecee90c
共有 2 個文件被更改,包括 9 次插入0 次删除
  1. 4 0
      src/Mesh/babylon.abstractMesh.js
  2. 5 0
      src/Mesh/babylon.abstractMesh.ts

+ 4 - 0
src/Mesh/babylon.abstractMesh.js

@@ -81,6 +81,10 @@ var BABYLON;
                 if (_this._diffPositionForCollisions.length() > BABYLON.Engine.CollisionsEpsilon) {
                     _this.position.addInPlace(_this._diffPositionForCollisions);
                 }
+				
+				if (_this.onCollide && collidedMesh) {
+					_this.onCollide(collidedMesh);
+				}
             };
             scene.addMesh(this);
         }

+ 5 - 0
src/Mesh/babylon.abstractMesh.ts

@@ -80,6 +80,7 @@
         private _oldPositionForCollisions = new Vector3(0, 0, 0);
         private _diffPositionForCollisions = new Vector3(0, 0, 0);
         private _newPositionForCollisions = new Vector3(0, 0, 0);
+		public onCollide: (collidedMesh: AbstractMesh) => void;
 
         // Attach to bone
         private _meshToBoneReferal: AbstractMesh;
@@ -766,6 +767,10 @@
             if (this._diffPositionForCollisions.length() > Engine.CollisionsEpsilon) {
                 this.position.addInPlace(this._diffPositionForCollisions);
             }
+			
+			if (this.onCollide && collidedMesh) {
+				this.onCollide(collidedMesh);
+			}
         }
 
         // Submeshes octree