Описание
Используйте эту структуру для настройки команды бросания сферы, которая выполняется асинхронно во время задания.
Когда вы используете эту структуру для планирования пакета приведения сфер, приведения сфер выполняются асинхронно и параллельно. Результаты каждого броска сферы записываются в буфер результатов. Поскольку результаты записываются асинхронно, вы не можете получить доступ к буферу результатов, пока задание не будет завершено.
Результат команды с индексом N в буфере команд сохраняется с индексом N в буфере результатов.
Смотрите так же: Physics.Spherecast.
using Unity.Collections;
using Unity.Jobs;
using UnityEngine;
public class Example : MonoBehaviour
{
private void SpherecastExample()
{
// Perform a single sphere cast using SpherecastCommand and wait for it to complete
// Set up the command and result buffers
var results = new NativeArray<RaycastHit>(1, Allocator.Temp);
var commands = new NativeArray<SpherecastCommand>(1, Allocator.Temp);
// Set the data of the first command
Vector3 origin = Vector3.forward * -10;
Vector3 direction = Vector3.forward;
float radius = 0.5f;
commands[0] = new SpherecastCommand(origin, radius, direction);
// Schedule the batch of sphere casts
var handle = SpherecastCommand.ScheduleBatch(commands, results, 1, default(JobHandle));
// Wait for the batch processing job to complete
handle.Complete();
// Copy the result. If batchedHit.collider is null, there was no hit
RaycastHit batchedHit = results[0];
// Dispose the buffers
results.Dispose();
commands.Dispose();
}
}
Свойства
direction | Направление броска сферы. |
distance | Максимальное расстояние, на котором сфера должна проверять столкновения. |
layerMask | Маска слоя, которая выборочно игнорирует коллайдеры при создании сферы. |
origin | Начальная точка сферы в мировых координатах. |
radius | Радиус забрасывающей сферы. |
Конструкторы
SpherecastCommand | Создает SpherecastCommand. |
Статические Методы
ScheduleBatch | Планирует пакет сферических слепков для выполнения в задании. |