CapsulecastCommand
структура в UnityEngine
Выполнено в:UnityEngine.PhysicsModule
Описание
Используйте эту структуру для настройки команды приведения капсулы, выполняемой асинхронно внутри задания.
Когда с помощью этой структуры вы планируете пакет приведений капсулы, они выполняются асинхронно и параллельно друг другу. Результат каждого приведения записывается в буфер результатов. Поскольку запись асинхронна, обращаться к буферу результатов можно только после завершения задания.
Результаты для команды с индексом N в буфере команд хранятся в индексе N * maxHits в буфере результатов.
Команда Capsulecast также позволяет контролировать, генерируют ли коллайдеры Trigger и треугольники с обратной стороной попадание. QueryParameters для управления флагами попаданий.
Примечание: В профиле регистрируется только BatchQuery.ExecuteCapsulecastJob. Информация о количестве запросов не регистрируется.
Дополнительные ресурсы: Physics.Capsulecast.
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(); } }
Свойства
| Свойство | Описание |
|---|---|
| direction | Направление капсулы. |
| distance | Максимальное расстояние, на котором капсула проверяет на столкновение. |
| physicsScene | Сцена физики, в которой запускается эта команда. |
| point1 | Центр сферы в начале капсулы. |
| point2 | Центр сферы на конце капсулы. |
| queryParameters | Структура для указания дополнительных параметров для пакетного запроса, таких как маска слоя, триггеры попаданий и задние поверхности попаданий. |
| radius | Радиус капсулы. |
Конструкторы
| Конструктор | Описание |
|---|---|
| CapsulecastCommand | Создает CapsulecastCommand. |
Статические методы
| Метод | Описание |
|---|---|
| ScheduleBatch | Расписывает пакет капсул для выполнения в задании. |