protected override JobHandle OnUpdate(JobHandle inputDeps) { EntityManager.GetAllUniqueSharedComponentData <LineRenderer>(lineRenderers); NativeCounter lineCounter = new NativeCounter(Allocator.Temp); LineMeshBuilderJob job = new LineMeshBuilderJob(); for (int i = 0; i < lineRenderers.Count; ++i) { LineRenderer renderer = lineRenderers[i]; group.SetFilter(renderer); int groupCount = group.CalculateLength(); if (groupCount == 0) { continue; } lineCounter.Count = 0; job.Initialize(group, renderer.Vertices, renderer.Normals, lineCounter); inputDeps = job.Schedule(groupCount, 8, inputDeps); inputDeps.Complete(); } lineRenderers.Clear(); lineCounter.Dispose(); return(inputDeps); }
protected override JobHandle OnUpdate(JobHandle inputDeps) { EntityManager.GetAllUniqueSharedComponentData <LineRendererRef>(lineRendererRefs); NativeCounter lineCounter = new NativeCounter(Allocator.TempJob); var vertexBuffers = GetBufferFromEntity <BufferableVertex>(); for (int i = 0; i < lineRendererRefs.Count; ++i) { Entity lineRendererEntity = lineRendererRefs[i].Value; LineRendererRef rendererRef = lineRendererRefs[i]; lineQuery.SetFilter(rendererRef); int groupCount = lineQuery.CalculateEntityCount(); if (groupCount == 0) { continue; } lineCounter.Count = 0; LineMeshBuilderJob job = new LineMeshBuilderJob { _counter = lineCounter, _vertexBuffer = (vertexBuffers[lineRendererEntity]), }; inputDeps = job.Schedule(this, inputDeps); inputDeps.Complete(); } lineRendererRefs.Clear(); lineCounter.Dispose(); return(inputDeps); }