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

PhysicsScene2D.BoxCast

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public RaycastHit2D BoxCast(Vector2 origin, Vector2 size, float angle, Vector2 direction, float distance, int layerMask = Physics2D.DefaultRaycastLayers);

声明

public RaycastHit2D BoxCast(Vector2 origin, Vector2 size, float angle, Vector2 direction, float distance, ContactFilter2D contactFilter);

参数

origin 盒子在二维空间中的起始点。
size 盒子的尺寸。
angle 盒子的角度(以度为单位)。
direction 表示投射盒子方向的向量。
distance 投射盒子时的最大距离。
layerMask 过滤器,用于仅在特定层上检测碰撞器。
contactFilter 用于以不同方式过滤结果的接触过滤器,例如通过层掩码、Z 深度或法线角。

返回值

RaycastHit2D 返回的投射结果。

描述

在 PhysicsScene2D 中,将一个盒子投射到碰撞器上,仅返回第一个交点。

“BoxCast”从概念上来说类似于将一个盒子形状在场景中以特定方向拖动。可以检测并报告与该盒子接触的任何Collider2D

此函数返回一个RaycastHit2D 对象,该对象包含对盒子所击中碰撞器的引用(如果未击中任何东西,则结果的碰撞器属性将为 NULL),并且包含接触点和法线,盒子将在该点接触碰撞器。它还返回盒子将要放置在该点以接触碰撞器的质心。

layerMask 可用于选择性地仅在特定层上检测对象(例如,这允许您仅将检测应用于敌人角色)。使用contactFilter 的此方法的重载可以通过ContactFilter2D 中提供的选项来过滤结果。

其他资源:PhysicsScene2DRaycastHit2DLayerMaskPhysics2D.DefaultRaycastLayersPhysics2D.IgnoreRaycastLayerPhysics2D.queriesHitTriggers


声明

public int BoxCast(Vector2 origin, Vector2 size, float angle, Vector2 direction, float distance, RaycastHit2D[] results, int layerMask = Physics2D.DefaultRaycastLayers);

声明

public int BoxCast(Vector2 origin, Vector2 size, float angle, Vector2 direction, float distance, ContactFilter2D contactFilter, RaycastHit2D[] results);

参数

origin 盒子在二维空间中的起始点。
size 盒子的尺寸。
angle 盒子的角度(以度为单位)。
direction 表示投射盒子方向的向量。
distance 投射盒子时的最大距离。
results 用于接收结果的数组。数组的大小决定了可以返回的最大结果数。
layerMask 过滤器,用于仅在特定层上检测碰撞器。
contactFilter 用于以不同方式过滤结果的接触过滤器,例如通过层掩码、Z 深度或法线角。

返回值

int 返回放置在results 数组中的结果数。

描述

将一个盒子投射到 PhysicsScene2D 中的碰撞器上,返回所有交点。

“BoxCast”从概念上来说类似于将一个盒子形状在场景中以特定方向拖动。可以检测并报告与该盒子接触的任何Collider2D

此函数返回一个RaycastHit2D 对象数组,该数组包含对盒子所击中碰撞器的引用(如果未击中任何东西,则结果的碰撞器属性将为 NULL),并且包含接触点和法线,盒子将在该点接触碰撞器。它还返回盒子将要放置在该点以接触碰撞器的质心。

整型返回值是与盒子相交的对象的数量(可能是零),但如果结果数组不包含足够的元素来报告所有结果,则该数组将不会被调整大小。这意味着不会为结果分配任何内存,因此垃圾回收性能得到提高。请注意,如果您传递一个空数组,您将始终获得零个结果。

layerMask 可用于选择性地仅在特定层上检测对象(例如,这允许您仅将检测应用于敌人角色)。使用contactFilter 的此方法的重载可以通过ContactFilter2D 中提供的选项来过滤结果。

所有结果按升序距离排序。

其他资源:PhysicsScene2DRaycastHit2DLayerMaskPhysics2D.DefaultRaycastLayersPhysics2D.IgnoreRaycastLayerPhysics2D.queriesHitTriggers


声明

public int BoxCast(Vector2 origin, Vector2 size, float angle, Vector2 direction, float distance, ContactFilter2D contactFilter, List<RaycastHit2D> results);

参数

origin 盒子在二维空间中的起始点。
size 盒子的尺寸。
angle 盒子的角度(以度为单位)。
direction 表示投射盒子方向的向量。
distance 投射盒子时的最大距离。
contactFilter 用于以不同方式过滤结果的接触过滤器,例如通过层掩码、Z 深度或法线角。
results 用于接收结果的列表。

返回值

int 返回放置在results 列表中的结果数。

描述

将一个盒子投射到 PhysicsScene2D 中的碰撞器上,返回所有交点。

“BoxCast”从概念上来说类似于将一个盒子形状在场景中以特定方向拖动。可以检测并报告与该盒子接触的任何Collider2D

整型返回值是写入results 列表的结果数。如果结果列表不包含足够的元素来报告所有结果,则该列表将被调整大小。这可以防止在results 列表不需要调整大小的情况下为结果分配内存,并在频繁执行查询时提高垃圾回收性能。

结果也可以通过contactFilter 进行过滤。所有结果按升序距离排序。

其他资源:PhysicsScene2DRaycastHit2D