#pragma warning restore 618 protected override JobHandle OnUpdate(JobHandle inputDependencies) { var newEntityJob = new NewEntityJob() { ConcurrentECB = m_ECBSource.CreateCommandBuffer().ToConcurrent() }; var newJobHandle = newEntityJob.ScheduleSingle(m_newEntities, inputDependencies); m_ECBSource.AddJobHandleForProducer(newJobHandle); var processEntityJob = new ProcessEntityJob() { ConcurrentECB = m_ECBSource.CreateCommandBuffer().ToConcurrent() }; var processJobHandle = processEntityJob.Schedule(m_activeEntities, newJobHandle); m_ECBSource.AddJobHandleForProducer(processJobHandle); var cleanupEntityJob = new CleanupEntityJob() { ConcurrentECB = m_ECBSource.CreateCommandBuffer().ToConcurrent() }; var cleanupJobHandle = cleanupEntityJob.ScheduleSingle(m_destroyedEntities, processJobHandle); m_ECBSource.AddJobHandleForProducer(cleanupJobHandle); return(cleanupJobHandle); }
protected override JobHandle OnUpdate(JobHandle inputDeps) { var inputDeps1 = new AddSystemStateJob { Ecb = m_EntityCommandBuffer.CreateCommandBuffer().ToConcurrent(), EntityType = GetArchetypeChunkEntityType(), Targets = GetArchetypeChunkComponentType <AbilityOwnerComponent>() }.Schedule(m_AddSystemState, inputDeps); var inputDeps2 = new CleanupEntityJob { Ecb = m_EntityCommandBuffer.CreateCommandBuffer().ToConcurrent(), EntityType = GetArchetypeChunkEntityType(), }.Schedule(m_RemoveSystemState, inputDeps); inputDeps = JobHandle.CombineDependencies(inputDeps, inputDeps1, inputDeps2); inputDeps = new RemoveElementFromDynamicBuffer { bufferFromEntity = GetBufferFromEntity <GrantedAbilityBufferElement>(), entities = m_RemoveSystemState.ToEntityArray(Allocator.TempJob), targetComponents = m_RemoveSystemState.ToComponentDataArray <GrantedAbilitySystemStateComponent>(Allocator.TempJob) }.Schedule(inputDeps); inputDeps = new AddElementToDynamicBuffer { bufferFromEntity = GetBufferFromEntity <GrantedAbilityBufferElement>(), entities = m_AddSystemState.ToEntityArray(Allocator.TempJob), targetComponents = m_AddSystemState.ToComponentDataArray <AbilityOwnerComponent>(Allocator.TempJob) }.Schedule(inputDeps); m_EntityCommandBuffer.AddJobHandleForProducer(inputDeps); return(inputDeps); }
#pragma warning restore 618 protected override JobHandle OnUpdate(JobHandle inputDependencies) { var newEntityJob = new NewEntityJob { ConcurrentECB = m_ecbSource.CreateCommandBuffer().AsParallelWriter() }; var newJobHandle = newEntityJob.ScheduleSingle(m_newEntities, inputDependencies); m_ecbSource.AddJobHandleForProducer(newJobHandle); var cleanupEntityJob = new CleanupEntityJob { ConcurrentECB = m_ecbSource.CreateCommandBuffer().AsParallelWriter() }; var cleanupJobHandle = cleanupEntityJob.ScheduleSingle(m_destroyedEntities, newJobHandle); m_ecbSource.AddJobHandleForProducer(cleanupJobHandle); return(cleanupJobHandle); }