diff --git a/leenkx/Sources/leenkx/logicnode/HasContactNode.hx b/leenkx/Sources/leenkx/logicnode/HasContactNode.hx index f801dd93..5f8d9587 100644 --- a/leenkx/Sources/leenkx/logicnode/HasContactNode.hx +++ b/leenkx/Sources/leenkx/logicnode/HasContactNode.hx @@ -16,10 +16,14 @@ class HasContactNode extends LogicNode { if (object1 == null || object2 == null) return false; #if lnx_physics - var physics = leenkx.trait.physics.PhysicsWorld.active; - var rb2 = object2.getTrait(RigidBody); - var rbs = physics.getContacts(object1.getTrait(RigidBody)); - if (rbs != null) for (rb in rbs) if (rb == rb2) return true; + var rb1 = leenkx.trait.physics.PhysicsWorld.getCachedRigidBody(object1); + var rb2 = leenkx.trait.physics.PhysicsWorld.getCachedRigidBody(object2); + + if (rb1 != null && rb2 != null) { + var physics = leenkx.trait.physics.PhysicsWorld.active; + var rbs = physics.getContacts(rb1); + return leenkx.trait.physics.PhysicsWorld.hasContactWith(rbs, rb2); + } #end return false; }