this doesnt sound right... it's as if state.CompleteDependency(); is not exactly waiting for the job to finish... this is the ISystem 's OnUpdate method that's calling a job that might take more than 50ms to complete
var enemyQuery = SystemAPI.QueryBuilder()
.WithAll<LocalTransform>()
.WithAll<UnitComponentData>()
.WithAll<EnemyTag>()
.Build();
var enemyLocalTransforms = enemyQuery.ToComponentDataArray<LocalTransform>( Allocator.TempJob );
var enemyUnits = enemyQuery.ToComponentDataArray<UnitComponentData>( Allocator.TempJob );
new AllyUnitMovementJob {
deltaTime = SystemAPI.Time.DeltaTime,
enemyTransforms = enemyLocalTransforms,
enemyUnits = enemyUnits,
enemyCount = enemyLocalTransforms.Length
}.ScheduleParallel( state.Dependency );
state.CompleteDependency();
enemyLocalTransforms.Dispose();
enemyUnits.Dispose();
