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) { 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); }