EntityQueryMask
Provides an efficient test of whether a specific archetype is included in the set of archetypes matched by an EntityQuery.
Read time 2 minutesLast updated a day ago
Definition
- Type: Struct
- Namespace: Unity.Entities
- Assembly: UnityEngine.EntitiesModule
- Implements: IEquatable<EntityQueryMask>
public struct EntityQueryMask : IEquatable<EntityQueryMask>
Remarks
Use a query mask to quickly identify whether an entity's archetype would be matched by an EntityQuery.
You can create up to 1024 unique EntityQueryMasks in an application.
Note that EntityQueryMask only filters by Archetype. It ignores any filtering on the EntityQuery (by shared component, change version, or order version), or the state of any enableable components.
One specific instance to be aware of is that if a query uses EntityQueryBuilder.WithNone with an enableable type T, an EntityQueryMask created from the query will effectively ignore this constraint. This is because for enableable types, WithNone matches both archetypes that don't contain T (as expected) but also those that do; entities in the latter archetypes could still match the query if their T component is disabled. Since EntityQueryMask ignores enableable component state, this means it considers an archetype to match whether or not it has T, meaning the WithNone(T) constraint has no effect. Consider using EntityQueryBuilder.WithAbsent in this case, if the intent is for the query mask to only match entities which don't have T at all.
Additional Resources: EntityManager.GetEntityQueryMask
Methods
Method | Description |
|---|---|
| Equals | Compare this instance to another object for equality. |
| GetHashCode | Computes a hash code for this instance. |
| Matches | Reports whether the archetype would be selected by the EntityQuery instance used to create this entity query mask. |
| MatchesIgnoreFilter | Reports whether a chunk's archetype is in the set of archetypes matched by this query. |
Operators
Operator | Description |
|---|---|
| operator == | Compare two instances for equality. |
| operator != | Compare two instances for inequality. |