using Unity.Collections;
using Unity.Jobs;
using UnityEngine;
public class CapsulecastExample : MonoBehaviour
{
void Start()
{
// Perform a single capsule cast using CapsulecastCommand and wait for it to complete
// Set up the command and result buffers
var results = new NativeArray<RaycastHit>(2, Allocator.TempJob);
var commands = new NativeArray<CapsulecastCommand>(1, Allocator.TempJob);
// Set the data of the first command
Vector3 point1 = Vector3.up * -0.5f;
Vector3 point2 = Vector3.up * 0.5f;
Vector3 direction = Vector3.forward;
float radius = 0.5f;
commands[0] = new CapsulecastCommand(point1, point2, radius, direction, QueryParameters.Default);
// Schedule the batch of capsulecasts
var handle = CapsulecastCommand.ScheduleBatch(commands, results, 1, 2, default(JobHandle));
// Wait for the batch processing job to complete
handle.Complete();
// If batchedHit.collider is not null there was a hit
foreach (var hit in results)
{
if (hit.collider != null)
{
// Do something with results
}
}
// Dispose the buffers
results.Dispose();
commands.Dispose();
}
}