Interface IJobEntityBatchWithIndex
IJobEntityBatchWithIndex is a variant of [IJobEntityBatch] that provides an additional indexOfFirstEntityInQuery parameter, which provides a per-batch index that is the aggregate of all previous batch counts.
Namespace: Unity.Entities
Syntax
[JobProducerType(typeof(JobEntityBatchIndexExtensions.JobEntityBatchIndexProducer<>))]
public interface IJobEntityBatchWithIndex
Remarks
Schedule or run an IJobEntityBatchWithIndex job inside the OnUpdate() function of a
SystemBase implementation. When the system schedules or runs an IJobEntityBatchWithIndex job, it uses
the specified EntityQuery to select a set of chunks. These selected chunks are divided into
batches of entities. A batch is a contiguous set of entities, always stored in the same chunk. The job
struct's Execute
function is called for each batch.
When you schedule or run the job with one of the following methods:
- Schedule<T>(T, EntityQuery, JobHandle),
- ScheduleParallel<T>(T, EntityQuery, JobHandle),
- or Run<T>(T, EntityQuery)
all the entities of each chunk are processed as
a single batch. The ArchetypeChunk object passed to the Execute
function of your job struct provides access
to the components of all the entities in the chunk.
Use
To pass data to your Execute function (beyond the Execute
parameters), add public fields to the IJobEntityBatchWithIndex
struct declaration and set those fields immediately before scheduling the job. You must always pass the
component type information for any components that the job reads or writes using a field of type,
ComponentTypeHandle<T>. Get this type information by calling the appropriate
GetComponentTypeHandle<T>(Boolean) function for the type of
component.
For more information see Using IJobEntityBatch.
Methods
Name | Description |
---|---|
Execute(ArchetypeChunk, Int32, Int32) | Implement the |