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

ClosestPointCommand

UnityEngine 中的结构体

/

实现于:UnityEngine.PhysicsModule

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

描述

用于设置在作业期间异步执行的最近点命令的结构体。

当您使用此结构体来安排一批最近点命令时,它们会异步执行,并且彼此并行。最近点的结果被写入结果缓冲区。由于结果是异步写入的,因此在作业完成之前无法访问结果缓冲区。

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

其他资源:Physics.ClosestPoint

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

public class ClosestPoint : MonoBehaviour { private void Start() { var collider = new GameObject().AddComponent<BoxCollider>(); // Perform a single closest point using ClosestPointCommand and wait for it to complete // Set up the command and result buffers var results = new NativeArray<Vector3>(1, Allocator.TempJob);

var commands = new NativeArray<ClosestPointCommand>(1, Allocator.TempJob);

commands[0] = new ClosestPointCommand(Vector3.one * 5, collider.GetInstanceID(), Vector3.zero, Quaternion.identity, collider.transform.lossyScale);

// Schedule the batch of closest points JobHandle handle = ClosestPointCommand.ScheduleBatch(commands, results, 1, default(JobHandle));

// Wait for the batch processing job to complete handle.Complete();

// Copy the result. If the point is inside of the Collider, it is returned as a result Vector3 closestPoint = results[0];

// Dispose of the buffers results.Dispose(); commands.Dispose(); } }

属性

colliderInstanceID您要查找最近点的碰撞器的 ID。
point您要查找最近点的点。
position碰撞器的位置。
rotation碰撞器的旋转。
scale碰撞器的全局缩放。

构造函数

ClosestPointCommand使用碰撞器的实例 ID 创建 ClosestPointCommand。

静态方法

ScheduleBatch安排一批最近点,这些最近点将在作业中执行。