Example #1
0
        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);
            })
Example #2
0
        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));
        }