Version: 2023.1

BoxcastCommand

struct in UnityEngine

切换到手册

描述

使用此结构来设置要在作业过程中异步执行的盒体投射命令。

使用此结构计划一批盒体投射时,这些盒体投射会以异步方式并行执行。每个盒体投射的结果会写入结果缓冲区。由于结果是异步写入,因此在作业完成之前无法访问结果缓冲区。

The results for a command at index N in the command buffer are stored at index N * maxHits in the results buffer.

Boxcast command also allows you to control whether or not Trigger colliders and back-face triangles generate a hit. Use QueryParameters to control hit flags.

Note: Only BatchQuery.ExecuteBoxcastJob is logged into the profiler. Query count information is not logged.

另请参阅:Physics.Boxcast。

using Unity.Collections;
using Unity.Jobs;
using UnityEngine;

public class BoxcastCommandExample : MonoBehaviour { void Start() { // Perform a single boxcast using BoxcastCommand 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<BoxcastCommand>(1, Allocator.TempJob);

// Set the data of the first command Vector3 center = Vector3.zero; Vector2 halfExtents = Vector3.one * 0.5f; Quaternion orientation = Quaternion.identity; Vector3 direction = Vector3.forward;

commands[0] = new BoxcastCommand(center, halfExtents, orientation, direction, QueryParameters.Default);

// Schedule the batch of boxcasts var handle = BoxcastCommand.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(); } }

变量

center盒体的中心。
direction扫射盒体的方向。
distance扫射的最大距离。
halfExtentsThe half size of the box in each dimension.
orientationThe rotation of the box.
physicsSceneThe physics scene this command is run in.
queryParametersStructure for specifying additional parameters for a batch query such as layer mask, hit triggers and hit backfaces.

构造函数

BoxcastCommand创建 BoxcastCommand。

静态函数

ScheduleBatch安排在一个作业中要执行的一批盒体投射。