WithAbsent
Add absent component types to the query.
Read time 2 minutesLast updated 2 days ago
Definition
- Type: Method
- Namespace: Unity.Entities
- Assembly: UnityEngine.EntitiesModule
WithAbsent<T>()
Add absent component types to the query.
public EntityQueryBuilder WithAbsent<T1>()
Returns
Type | Description |
|---|---|
| EntityQueryBuilder | The builder object that invoked this method. |
Remarks
To match the resulting query, an archetype must not have any of the absent components (whether they are disabled or enabled).
There are several ways to exclude components from a query:
-
WithAbsent\<T\>() matches all entities in chunks that do not have T at all.
-
WithDisabled\<T\>() matches chunks that must have T, but only matches entities where T is disabled.
-
WithNone\<T\>() matches both of the above cases: either the component isn't present at all, or it is present but disabled.
WithAbsent accepts up to seven type arguments. You can add more component types by chaining calls together.
To add component types that are not known at compile time, use EntityQueryBuilder.WithAbsent@@<c>1(</c>@@0)
Component types added using WithAbsent are never written to. If the ComponentType.AccessMode field of the provided component type is ComponentType.AccessMode.ReadWrite, it will be forced to ComponentType.AccessMode.ReadOnly in the final query.
WithAbsent<T>(T)
Add absent component types to the query.
public EntityQueryBuilder WithAbsent<T>(ref T componentTypes) where T : INativeList<ComponentType>
Parameters
Returns
Type | Description |
|---|---|
| EntityQueryBuilder | The builder object that invoked this method. |
Remarks
To match the resulting query, an archetype must not have any of the absent components.
To add component types that are known at compile time, use WithNone@@@@1
There are several ways to exclude components from a query:
-
WithAbsent\<T\>() matches all entities in chunks that do not have T at all.
-
WithDisabled\<T\>() matches chunks that must have T, but only matches entities where T is disabled.
-
WithNone\<T\>() matches both of the above cases: either the component isn't present at all, or it is present but disabled.
Component types added using WithAbsent are never written to. If the ComponentType.AccessMode field of the provided component type is ComponentType.AccessMode.ReadWrite, it will be forced to ComponentType.AccessMode.ReadOnly in the final query.