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); })
private void Update() { var boundsJob = new BoundsJob() { Positions = _positions, Accelerations = _accelerations, AreaSize = _areaSize }; var accelerationJob = new AccelerationJob() { Positions = _positions, Velocities = _velocities, Accelerations = _accelerations, DestinationThreshold = _destinationThreshold, Weights = _accelerationWeights }; var moveJob = new MoveJob() { Positions = _positions, Velocities = _velocities, Accelerations = _accelerations, DeltaTime = Time.deltaTime, VelocityLimit = _velocityLimit }; var boundsHandle = boundsJob.Schedule(_numberOfEntities, 0); var accelerationHandle = accelerationJob.Schedule(_numberOfEntities, 0, boundsHandle); var moveHandle = moveJob.Schedule(_transformAccessArray, accelerationHandle); moveHandle.Complete(); }
protected override JobHandle OnUpdate(JobHandle dependency) { var boundsJob = new BoundsJob { }; dependency = boundsJob.Schedule(this, dependency); return(dependency); }
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)); }
protected override void OnUpdate() { EntityManager.AddComponent(m_MissingWorldRenderBounds, typeof(WorldRenderBounds)); EntityManager.AddComponent(m_MissingWorldChunkRenderBounds, ComponentType.ChunkComponent <ChunkWorldRenderBounds>()); Dependency = new BoundsJob { RendererBounds = GetArchetypeChunkComponentType <RenderBounds>(true), LocalToWorld = GetArchetypeChunkComponentType <LocalToWorld>(true), WorldRenderBounds = GetArchetypeChunkComponentType <WorldRenderBounds>(), ChunkWorldRenderBounds = GetArchetypeChunkComponentType <ChunkWorldRenderBounds>(), LastSystemVersion = LastSystemVersion }.Schedule(m_WorldRenderBounds, Dependency); }
protected override JobHandle OnUpdate(JobHandle dependency) { EntityManager.AddComponent(m_MissingWorldRenderBounds, typeof(WorldRenderBounds)); var boundsJob = new BoundsJob { Chunks = m_WorldRenderBounds.CreateArchetypeChunkArray(Allocator.TempJob), RendererBounds = GetArchetypeChunkComponentType <RenderBounds>(true), LocalToWorld = GetArchetypeChunkComponentType <LocalToWorld>(true), WorldRenderBounds = GetArchetypeChunkComponentType <WorldRenderBounds>(), }; return(boundsJob.Schedule(boundsJob.Chunks.Length, 1, dependency)); }
protected override JobHandle OnUpdate(JobHandle dependency) { EntityManager.AddComponent(m_MissingWorldRenderBounds, typeof(WorldRenderBounds)); EntityManager.AddComponent(m_MissingWorldChunkRenderBounds, ComponentType.ChunkComponent <ChunkWorldRenderBounds>()); var boundsJob = new BoundsJob { RendererBounds = GetArchetypeChunkComponentType <RenderBounds>(true), LocalToWorld = GetArchetypeChunkComponentType <LocalToWorld>(true), WorldRenderBounds = GetArchetypeChunkComponentType <WorldRenderBounds>(), ChunkWorldRenderBounds = GetArchetypeChunkComponentType <ChunkWorldRenderBounds>(), LastSystemVersion = LastSystemVersion }; return(boundsJob.Schedule(m_WorldRenderBounds, dependency)); }
protected override JobHandle OnUpdate(JobHandle inputDeps) { var playAreas = playAreaQuery.ToComponentDataArray <PlayArea>(Allocator.TempJob); BoundsJob job = new BoundsJob { PlayAreas = playAreas, ECB = ecbSystem.CreateCommandBuffer().ToConcurrent() }; JobHandle jobHandle = job.Schedule(this, inputDeps); ecbSystem.AddJobHandleForProducer(jobHandle); return(jobHandle); }