public static JobHandle ScheduleBatchRayCast(Unity.Physics.CollisionWorld world,
                                                 NativeArray <Unity.Physics.RaycastInput> inputs, NativeArray <Unity.Physics.RaycastHit> results)
    {
        JobHandle rcj = new RaycastJob
        {
            inputs  = inputs,
            results = results,
            world   = world
        }.Schedule(inputs.Length, 5);

        return(rcj);
    }
    public static void SingleRayCast(Unity.Physics.CollisionWorld world, Unity.Physics.RaycastInput input,
                                     ref Unity.Physics.RaycastHit result)
    {
        var rayCommands = new NativeArray <Unity.Physics.RaycastInput>(1, Allocator.TempJob);
        var rayResults  = new NativeArray <Unity.Physics.RaycastHit>(1, Allocator.TempJob);

        rayCommands[0] = input;
        var handle = ScheduleBatchRayCast(world, rayCommands, rayResults);

        handle.Complete();
        result = rayResults[0];
        rayCommands.Dispose();
        rayResults.Dispose();
    }
Example #3
0
 // Construct a world with the given number of uninitialized bodies and joints
 public PhysicsWorld(int numStaticBodies, int numDynamicBodies, int numJoints)
 {
     CollisionWorld = new CollisionWorld(numStaticBodies, numDynamicBodies);
     DynamicsWorld  = new DynamicsWorld(numDynamicBodies, numJoints);
 }