protected override JobHandle OnUpdate(JobHandle inputDependencies) { quandrantMultiHashMap.Clear(); EntityQuery query = GetEntityQuery(typeof(QuadrantEntity)); int quandrantEntityLength = query.CalculateEntityCount(); if (quandrantEntityLength > quandrantMultiHashMap.Capacity) { Debug.Log("Setting Capacity " + quandrantEntityLength); quandrantMultiHashMap.Capacity = quandrantEntityLength; } var job = new QuadrantSystemJob() { entityCommandBuffer = endSimulationEntityCommandBuffer.CreateCommandBuffer().ToConcurrent(), quandrantMultiHashMap = quandrantMultiHashMap.AsParallelWriter(), }; var schedule = job.Schedule(this, inputDependencies); endSimulationEntityCommandBuffer.AddJobHandleForProducer(schedule); schedule.Complete(); var currentMousePosition = Camera.main.ScreenToWorldPoint( new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.nearClipPlane)); DebugDrawQuadrant(currentMousePosition); //Debug.Log(quandrantMultiHashMap.CountValuesForKey(GetPositionHasMapKey(currentMousePosition))); /* quandrantMultiHashMap.Dispose(); */ return(schedule); }
protected override JobHandle OnUpdate(JobHandle inputDependencies) { int zombQueryLength = quadrantEntityQuery.CalculateEntityCount(); QuadrantEntityHashMap.Clear(); if (zombQueryLength > QuadrantEntityHashMap.Capacity) { QuadrantEntityHashMap.Capacity = zombQueryLength; } var job = new QuadrantSystemJob { EntityHashMap = QuadrantEntityHashMap.AsParallelWriter() }.Schedule(this, inputDependencies); return(job); }