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

OverlapSphereCommand

структура в UnityEngine

Выполнено в:UnityEngine.PhysicsModule

Описание

Структура, используемая для настройки команды перекрытия сферы, которая будет выполняться асинхронно во время выполнения задания.

Когда с помощью этой структуры вы планируете пакет команд перекрытия сферой, они выполняются асинхронно. Результаты записываются в буфер результатов. Поскольку запись асинхронна, обращаться к буферу результатов можно только после завершения задания.

Результаты для команды с индексом N в буфере команд хранятся в индексе N * maxHits в буфере результатов.

Если maxHits больше, чем фактическое число результатов для команды, буфер результатов будет содержать некоторые неверные результаты, которые не попали ни в что. Первый неверный результат идентифицируется тем, что коллайдерный экземпляр ID равен 0. Второй и последующие неверные результаты не записываются в команду overlap sphere, так что их коллайдерный экземпляр IDs не гарантированно равен 0. При итерации результатов цикл должен прекратиться, когда обнаруживается первый неверный результат.

Команда Overlap sphere также управляет тем, генерируют ли коллайдеры Trigger попадания. Вы должны соответственно настроить maxHits и размер массива результатов, чтобы хранить все попадания. QueryParameters для управления флагами попаданий. QueryParameters.hitBackfaces и QueryParameters.hitMultipleFaces флаги не поддерживаются и не будут иметь никакого влияния на результаты перекрытия.

Примечание: В профиле регистрируется только BatchQuery.ExecuteOverlapSphere. Информация о количестве запросов не регистрируется.

Дополнительные ресурсы: Physics.OverlapSphere, ColliderHit.

using Unity.Collections;
using UnityEngine;

public class SphereOverlap : MonoBehaviour { //Print names of GameObject inside the sphere void BatchOverlapSphere() { var commands = new NativeArray<OverlapSphereCommand>(1, Allocator.TempJob); var results = new NativeArray<ColliderHit>(3, Allocator.TempJob);

commands[0] = new OverlapSphereCommand(Vector3.zero, 10f, QueryParameters.Default);

OverlapSphereCommand.ScheduleBatch(commands, results, 1, 3).Complete();

foreach (var hit in results) Debug.Log(hit.collider.name);

commands.Dispose(); results.Dispose(); } }

Свойства

Свойство Описание
physicsSceneСцена физики, в которой запускается команда.
pointЦентр сферы.
queryParametersСтруктура для указания дополнительных параметров для пакетного запроса, таких как маска слоя или триггеры попадания.
radiusРадиус сферы.

Конструкторы

Конструктор Описание
OverlapSphereCommandСоздайте OverlapSphereCommand.

Статические методы

Метод Описание
ScheduleBatchРасписание пакета команд перекрытия сферы для выполнения в задании.