Skip to main content

collider_active_hooks

Physics hooks are user-defined callbacks used to filter-out some contact pairs, or modify contacts, based on arbitrary user code. In order to enable a physics hook for a pair of colliders, at least one of the involved colliders must have the corresponding hook set as active. A hook is activated for a collider by setting its corresponding active hooks bit to 1:

The active hooks of a collider can be set when the collider is created or after its creation:

/* Set the active hooks when the collider is created. */
commands
.spawn(Collider::ball(0.5))
.insert(ActiveHooks::FILTER_CONTACT_PAIRS | ActiveHooks::MODIFY_SOLVER_CONTACTS);
/* Set the active hooks inside of a system. */
fn modify_collider_active_hooks(mut active_hooks: Query<&mut ActiveHooks>) {
for mut active_hooks in active_hooks.iter_mut() {
*active_hooks = ActiveHooks::FILTER_CONTACT_PAIRS | ActiveHooks::MODIFY_SOLVER_CONTACTS;
}
}