版本: Unity 6 (6000.0)
语言英语
  • C#

BoxcastCommand

UnityEngine 中的结构体

/

实现于:UnityEngine.PhysicsModule

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交的内容,但我们会阅读用户提出的每项建议,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

描述

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

当您使用此结构体安排一批盒子投射时,盒子投射将异步并行执行。每次盒子投射的结果都将写入结果缓冲区。由于结果是异步写入的,因此您无法在作业完成之前访问结果缓冲区。

命令缓冲区中索引为 N 的命令的结果存储在结果缓冲区中索引为 N * maxHits 的位置。

盒子投射命令还允许您控制触发器碰撞器和背面三角形是否生成命中。使用 QueryParameters 控制命中标志。

注意:仅将 BatchQuery.ExecuteBoxcastJob 记录到探查器中。查询计数信息不会被记录。

其他资源: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扫描的最大距离。
halfExtents盒子的每个维度的半尺寸。
orientation盒子的旋转。
physicsScene此命令运行的物理场景。
queryParameters用于指定批次查询的附加参数的结构体,例如层遮罩、命中触发器和命中背面。

构造函数

BoxcastCommand创建 BoxcastCommand。

静态方法

ScheduleBatch安排一批盒子投射,以便在作业中执行。