Closed smeybi closed 7 months ago
Thanks for (re) reporting this.
There seem to be a whole load of things that are set up on ammo-body initialization that aren't cleared up on removal.
Here's an attempt at a fix: https://github.com/c-frame/aframe-physics-system/pull/48
Do you have an established way of testing this? Any feedback would be welcome.
Have a glitch for testing this: https://aframe-physics-system-issue-47.glitch.me/ - see #48 for details. Fix seems to not be working yet.
I think we should close this on the basis that we have an adequate fix here: https://github.com/c-frame/aframe-physics-system/pull/52
OK?
Updated test here to point to a build with fix #57 in place, and it seems to be working correctly.
When using ammo, and physics objects are removed, the collision event does not work properly anymore. There are dropouts in between.
If
Ammo.destroy(this.body);
is replaced bythis.system.driver.removeBody(this.body);
it works. with remove: element in line 16560here is the whole element from line 16560: remove: function() { if (this.triMesh) Ammo.destroy(this.triMesh); if (this.localScaling) Ammo.destroy(this.localScaling); if (this.compoundShape) Ammo.destroy(this.compoundShape); if (this.body) {
// Ammo.destroy(this.body);
this.system.driver.removeBody(this.body) delete this.body;
} Ammo.destroy(this.rbInfo); Ammo.destroy(this.msTransform); Ammo.destroy(this.motionState); Ammo.destroy(this.localInertia); Ammo.destroy(this.rotation); },
For example it works, remove the ammo body and the object3D separate, not problem
i have reported this before here: https://github.com/n5ro/aframe-physics-system/issues/137#issuecomment-878697924
here is a new glitch to see the error: (Comment out the new script 'aframe-physic-system-fix.js' aframe-physic-system.js is the original. perhaps increase the number and speed of boxes on powerful computers to see the error) https://aframe-physics-system-remove-bug.glitch.me