Unity 6.3
0 онлайн 63 гостей 3 в системе
Вход

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Расписание пакета команд перекрывающихся окон для выполнения в задании.