pretty sure it compiled, it might be bad code;
Here is the method being called:
public void MoveTowardsNextTarget(float deltaTime, BlobAssetReference<EnemyTargetsBlob> Targets, float2 RandomFloat2)
{
if (TargetOffset.Equals(float3.zero)) _enemy.ValueRW.TargetOffset = new float3(RandomFloat2.x, 0, RandomFloat2.y);
if (Order >= Targets.Value.Targets.Length) return;
if (math.distance(Targets.Value.Targets[Order].Location + TargetOffset, _transform.ValueRO.Position) < Speed * deltaTime * 2)
_enemy.ValueRW.Order++;
if (Order >= Targets.Value.Targets.Length) return;
float3 direction = Targets.Value.Targets[Order].Location + TargetOffset - _transform.ValueRO.Position;
if (deltaTime > 0.04) _transform.ValueRW.Rotation = quaternion.LookRotation(direction, _transform.ValueRO.Up());
else _transform.ValueRW.Rotation =
math.slerp(_transform.ValueRW.Rotation, quaternion.LookRotation(direction, _transform.ValueRO.Up()), Speed * deltaTime * 2);
_transform.ValueRW.Position += deltaTime * Speed * _transform.ValueRO.Forward();
}
And here is the method calling the Job:
[BurstCompile] public void OnUpdate(ref SystemState state)
{
Entity gameEntity = SystemAPI.GetSingletonEntity<GameProperties>();
GameAspect game = SystemAPI.GetAspect<GameAspect>(gameEntity);
int entityCount = new EntityQueryBuilder(Allocator.Temp).Build(state.EntityManager).CalculateEntityCountWithoutFiltering();
int recommendedCores = math.clamp((int)math.floor(math.log10(entityCount) - 6), 1, JobsUtility.JobWorkerMaximumCount);
if (JobsUtility.JobWorkerCount != recommendedCores) JobsUtility.JobWorkerCount = recommendedCores;
new EnemyMoveJob
{
DeltaTime = SystemAPI.Time.DeltaTime,
Targets = game.EnemyTargets,
Offset = game.RandomFloat2(1f)
}.ScheduleParallel();
}