OverlapBoxCommand
структура в UnityEngine
Выполнено в:UnityEngine.PhysicsModule
Описание
Структура, используемая для настройки команды перекрывающегося окна, которая будет выполняться асинхронно во время выполнения задания.
Когда с помощью этой структуры вы планируете пакет команд перекрытия боксом, они выполняются асинхронно. Результаты записываются в буфер результатов. Поскольку запись асинхронна, обращаться к буферу результатов можно только после завершения задания.
Результаты для команды с индексом N в буфере команд хранятся в индексе N * maxHits в буфере результатов.
Если maxHits больше, чем фактическое число результатов для команды, то буфер результатов будет содержать некоторые неверные результаты, которые не попали ни в что. Первый неверный результат идентифицируется тем, что коллайдерный экземпляр ID равен 0. Второй и последующие неверные результаты не записываются в команду overlap box, так что их коллайдерный экземпляр IDs не гарантированно равен 0. При итерации результатов цикл должен остановиться, когда обнаруживается первый неверный результат.
Команда Overlap box также управляет тем, генерируют ли коллайдеры Trigger hit. Вы должны соответственно настроить maxHits и размер массива результатов, чтобы хранить все hits. QueryParameters для управления флагами попаданий. QueryParameters.hitBackfaces и QueryParameters.hitMultipleFaces флаги не поддерживаются и не будут иметь никакого влияния на результаты перекрытия.
Примечание: В профиле регистрируется только BatchQuery.ExecuteOverlapBoxJob. Информация о количестве запросов не регистрируется.
Дополнительные ресурсы: Physics.OverlapBox, ColliderHit.
using Unity.Collections; using UnityEngine;
public class BoxOverlap : MonoBehaviour { //Print names of GameObjects inside the box void BatchOverlapBox() { var commands = new NativeArray<OverlapBoxCommand>(1, Allocator.TempJob); var results = new NativeArray<ColliderHit>(3, Allocator.TempJob);
commands[0] = new OverlapBoxCommand(Vector3.zero, Vector3.one, Quaternion.identity, QueryParameters.Default);
OverlapBoxCommand.ScheduleBatch(commands, results, 1, 3).Complete();
foreach (var hit in results) Debug.Log(hit.collider.name);
commands.Dispose(); results.Dispose(); } }
Свойства
| Свойство | Описание |
|---|---|
| center | Центр коробки. |
| halfExtents | Половина размера коробки в каждом измерении. |
| orientation | Ориентация коробки. |
| physicsScene | Сцена физики, в которой запускается эта команда. |
| queryParameters | Структура для указания дополнительных параметров для пакетного запроса, таких как маска слоя или триггеры попадания. |
Конструкторы
| Конструктор | Описание |
|---|---|
| OverlapBoxCommand | Создайте OverlapBoxCommand. |
Статические методы
| Метод | Описание |
|---|---|
| ScheduleBatch | Расписание пакета команд перекрывающихся окон для выполнения в задании. |