OptionalcollisionBit set of groups the query belongs to. Defaults to every bit.
OptionalcollisionBit set of groups the query may hit. Defaults to every bit.
OptionalignoredBodies to skip entirely — §30's "ignored bodies", whose canonical use is excluding the character that cast the ray. Compared by handle identity.
OptionalignoredIndividual colliders to skip, for when a body has several and only some should be invisible to the query.
OptionalincludeWhether sensors take part (§30 "sensor inclusion"). Defaults to false:
a sensor exerts no forces (§24) and is usually a trigger volume rather
than geometry, so line-of-sight and ground checks should not stop at one.
Optionalpredicate§30's "custom filters" — the last word on whether a candidate counts.
Called after the cheap tests above have passed, once per candidate, and must be a pure function of its argument: it runs inside the query, its call order is the solver's traversal order, and a predicate with side effects would make query results depend on that order (§33).
Which colliders a query is allowed to see (§30).
The group/mask rule
Interaction is mutual, the convention every solver this API sits above uses: a query and a collider interact when each one's groups appear in the other's mask.
Requiring both directions means a collider can opt out of a query it does not want to answer, which one-directional masking cannot express. Both values default to ALL_COLLISION_GROUPS, so a filter that mentions neither sees everything.