public sealed class QueryDescriptionWhich entities a query is about, as three sets of component types and an optional change filter.
Remarks
Matching is three BitSet tests against an archetype's mask — a superset test, an intersection test and its negation — so the cost of deciding whether ten thousand entities are relevant is proportional to the number of archetypes, not the number of entities. The result is cached per world in a Query.
A description is built once and reused. Building one per frame works and allocates three bit sets and a list for nothing.
Fields and properties (2)
public IReadOnlyList<ComponentTypeId> ChangedComponentsThe component types whose change versions the filter looks at.
public bool HasChangeFilterWhether any change filter is set at all.
Methods (71)
public QueryDescription RequireAll(ReadOnlySpan<ComponentTypeId> componentTypes)Requires every one of these components.
public QueryDescription RequireAny(ReadOnlySpan<ComponentTypeId> componentTypes)Requires at least one of these components. An empty set means "no such requirement".
public QueryDescription Exclude(ReadOnlySpan<ComponentTypeId> componentTypes)Excludes entities that have any of these components.
public QueryDescription RequireChanged(ReadOnlySpan<ComponentTypeId> componentTypes)Requires these components, and narrows iteration to chunks in which at least one of them has been written since the version the caller passes.
public bool Matches(Archetype archetype)Whether an archetype's component set satisfies the description.
public bool MatchesChange(Chunk chunk, uint since)Whether a chunk has been written since a version, per the change filter.
public override string ToString()Renders the three sets, which is what a diagnostic wants.
public QueryDescription WithAll<T0>()Requires every one of these components.
public QueryDescription WithAny<T0>()Requires at least one of these components.
public QueryDescription WithNone<T0>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1>()Requires every one of these components.
public QueryDescription WithAny<T0, T1>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4, T5>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4, T5>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4, T5>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4, T5>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4, T5, T6>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4, T5, T6>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4, T5, T6>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4, T5, T6>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4, T5, T6, T7>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4, T5, T6, T7>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4, T5, T6, T7>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4, T5, T6, T7>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4, T5, T6, T7, T8>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4, T5, T6, T7, T8>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4, T5, T6, T7, T8>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4, T5, T6, T7, T8>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>()Requires these components, and narrows iteration to chunks in which one of them changed.
public QueryDescription WithAll<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>()Requires every one of these components.
public QueryDescription WithAny<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>()Requires at least one of these components.
public QueryDescription WithNone<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>()Excludes entities that have any of these components.
public QueryDescription WithChanged<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>()Requires these components, and narrows iteration to chunks in which one of them changed.
Used by (87, showing 40)
- ArenaThirdPersonShooter
- GameClientMultiplayer
- OrbitSystemEcsStressTest
- SliceResolverNetworkSoak
- ThirdPersonShooterGameThirdPersonShooter
- Vixen_Samples_Multiplayer_CombatantReplicatorMultiplayer
- Vixen_Samples_Multiplayer_VitalsReplicatorMultiplayer
- ConstraintStageBenchmarksVixen.Benchmarks.Animation
- WorldBenchmarksVixen.Benchmarks.Ecs
- AllNetworkedSourceVixen.Net
- AnimationSystemVixen.Animation
- AudioSystemVixen.Audio
- CameraDirectorSystemVixen.Engine
- CameraExtractionSystemVixen.Rendering
- ChunkSequenceVixen.Ecs
- ClientPredictionVixen.Net
- CommandBufferTestsVixen.Ecs.Tests
- ConstraintGizmoSystemVixen.Animation
- DeterminismTestsVixen.Ecs.Tests
- EnumeratorVixen.Ecs
- FoliageBlockersVixen.Rendering.Terrain
- HandWrittenTransformReplicatorVixen.Net.Generators.Tests
- HealthReplicatorVixen.Net.Tests
- IComponentReplicatorVixen.Net
- IntegrateSystemVixen.Ecs.Tests
- InterestGridVixen.Net
- LightExtractionSystemVixen.Rendering
- LocalPlayerSystemVixen.Net.Engine
- MeshExtractionSystemVixen.Rendering
- MoveSystemVixen.Ecs.Tests
- NavigationSystemVixen.Navigation
- NetworkAnimatorApplySystemVixen.Net.Animation
- NetworkAnimatorCaptureSystemVixen.Net.Animation
- NetworkAnimatorParametersReplicatorVixen.Net.Animation
- NetworkAnimatorReplicatorVixen.Net.Animation
- NetworkAudioApplySystemVixen.Net.Audio
- NetworkAudioCaptureSystemVixen.Net.Audio
- NetworkAudioSourceReplicatorVixen.Net.Audio
- NetworkBonesApplySystemVixen.Net.Animation
- NetworkBonesCaptureSystemVixen.Net.Animation