I would like to parallelise Physics2D.Linecast.
Is there a way to use a NativeArray with Physics2D.Linecast or use a standard RaycastHit2D array in a manner that will work with the job system?
I understand that a 3D parallelised version is supported via RaycastCommand and it looks like there is no 2D equivalent so I’m trying to work out what my options are.
public struct ParallelRayCastJob : IJobParallelFor
{
[ReadOnly] public ContactFilter2D contactFilter;
[ReadOnly] public NativeArray<float> columnRay;
[ReadOnly] public Vector3 forward;
[ReadOnly] public float maxDistance;
[ReadOnly] public Vector3 origin;
[ReadOnly] public Vector3 perpendicular;
public NativeArray<RaycastHit2D> results;
public void Execute(int i)
{
var rayDirection = forward + (perpendicular * columnRay[i]);
var end = origin + rayDirection * maxDistance;
var numResults = Physics2D.Linecast(origin, end, contactFilter, results);
...
}
}