protected override void OnUpdate() { var ecb = _endSimulationEcbSystem.CreateCommandBuffer(); var ecb_pw = ecb.AsParallelWriter(); EntityManager.AddChunkComponentData <ChunkWorldRenderBounds>( _query_noCWRB, default(ChunkWorldRenderBounds) ); if (LineRendererWorld.IsCreated && this.World == LineRendererWorld.GetWorld()) { var boundsJob = new BoundsJob { rendererBounds = GetComponentTypeHandle <RenderBounds>(true), localToWorld = GetComponentTypeHandle <LocalToWorld>(true), worldRenderBounds = GetComponentTypeHandle <WorldRenderBounds>(), chunkWorldRenderBounds = GetComponentTypeHandle <ChunkWorldRenderBounds>(), }; Dependency = boundsJob.ScheduleParallel(_query, Dependency); } Entities .WithName($"add_missing_{nameof(WorldRenderBounds)}_components_job") .WithAll <Segment>() .WithNone <WorldRenderBounds>() .ForEach((in int entityInQueryIndex, in Entity entity) => { ecb_pw.AddComponent <WorldRenderBounds>(entityInQueryIndex, entity); })
protected override JobHandle OnUpdate(JobHandle dependency) { var boundsJob = new BoundsJob { RendererBounds = GetArchetypeChunkComponentType <RenderBounds>(true), LocalToWorld = GetArchetypeChunkComponentType <LocalToWorld>(true), WorldRenderBounds = GetArchetypeChunkComponentType <WorldRenderBounds>(), ChunkWorldRenderBounds = GetArchetypeChunkComponentType <ChunkWorldRenderBounds>(), }; return(boundsJob.ScheduleParallel(m_WorldRenderBounds, dependency)); }