Class JobComponentSystem
An abstract class to implement in order to create a system that uses ECS-specific Jobs.
Inherited Members
Namespace: Unity.Entities
Syntax
public abstract class JobComponentSystem : ComponentSystemBase
Remarks
Implement a JobComponentSystem subclass for systems that perform their work using IJobForEach<T0> or IJobChunk.
Properties
Entities
Use Entities.ForEach((ref Translation translation, in Velocity velocity) => { translation.Value += velocity.Value * dt; }).Schedule(inputDependencies);
Declaration
protected ForEachLambdaJobDescription Entities { get; }
Property Value
Type | Description |
---|---|
Unity.Entities.CodeGeneratedJobForEach.ForEachLambdaJobDescription |
Job
Use Job.WithCode(() => { YourCodeGoesHere(); }).Schedule(inputDependencies);
Declaration
protected LambdaSingleJobDescription Job { get; }
Property Value
Type | Description |
---|---|
Unity.Entities.CodeGeneratedJobForEach.LambdaSingleJobDescription |
Methods
OnUpdate(JobHandle)
Implement OnUpdate to perform the major work of this system.
Declaration
protected abstract JobHandle OnUpdate(JobHandle inputDeps)
Parameters
Type | Name | Description |
---|---|---|
JobHandle | inputDeps | Existing dependencies for this system. |
Returns
Type | Description |
---|---|
JobHandle | A Job handle that contains the dependencies of the Jobs in this system. |
Remarks
The system invokes OnUpdate once per frame on the main thread when any of this system's EntityQueries match existing entities, or if the system has the AlwaysUpdate attribute.
To run a Job, create an instance of the Job struct, assign appropriate values to the struct fields and call
one of the Job schedule functions. The system passes any current dependencies between Jobs -- which can include Jobs
internal to this system, such as gathering entities or chunks, as well as Jobs external to this system,
such as Jobs that write to the components read by this system -- in the inputDeps
parameter. Your function
must combine the input dependencies with any dependencies of the Jobs created in OnUpdate and return the
combined
Update()
Declaration
public override sealed void Update()