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

PhysicsScene2D.CircleCast

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public RaycastHit2D CircleCast(Vector2 origin, float radius, Vector2 direction, float distance, int layerMask = Physics2D.DefaultRaycastLayers);

声明

public RaycastHit2D CircleCast(Vector2 origin, float radius, Vector2 direction, float distance, ContactFilter2D contactFilter);

参数

origin 圆形在 2D 空间中的起始点。
radius 圆形的半径。
direction 表示圆形投射方向的向量。
distance 投射圆形的最大距离。
layerMask 用于仅在特定层上检测碰撞器的过滤器。
contactFilter 用于以不同方式过滤结果的接触过滤器,例如通过层遮罩、Z 深度或法线角度。

返回值

RaycastHit2D 返回的投射结果。

描述

在 PhysicsScene2D 中针对碰撞器投射圆形,仅返回第一个交点。

“CircleCast”在概念上类似于在场景中以特定方向拖动一个圆形形状。可以检测并报告与圆形发生接触的任何Collider2D

此函数返回一个RaycastHit2D 对象,其中包含对圆形所击中碰撞器的引用(如果未击中任何碰撞器,则结果的碰撞器属性将为 NULL),并包含圆形与碰撞器接触时的点和法线。它还返回圆形的质心,该圆形将位于该点以与碰撞器接触。

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

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


声明

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

声明

public int CircleCast(Vector2 origin, float radius, Vector2 direction, float distance, ContactFilter2D contactFilter, RaycastHit2D[] results);

参数

origin 圆形在 2D 空间中的起始点。
radius 圆形的半径。
direction 表示圆形投射方向的向量。
distance 投射圆形的最大距离。
results 用于接收结果的数组。数组的大小决定了可以返回的结果的最大数量。
layerMask 用于仅在特定层上检测碰撞器的过滤器。
contactFilter 用于以不同方式过滤结果的接触过滤器,例如通过层遮罩、Z 深度或法线角度。

返回值

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

描述

在 PhysicsScene2D 中针对碰撞器投射圆形,返回所有交点。

“CircleCast”在概念上类似于在场景中以特定方向拖动一个圆形形状。可以检测并报告与圆形发生接触的任何Collider2D

此函数返回一个RaycastHit2D 对象数组,其中包含对圆形所击中碰撞器的引用(如果未击中任何碰撞器,则结果的碰撞器属性将为 NULL),并包含圆形与碰撞器接触时的点和法线。它还返回圆形的质心,该圆形将位于该点以与碰撞器接触。

整数返回值是与圆形相交的对象数量(可能为零),但如果数组中不包含足够多的元素来报告所有结果,则结果数组不会调整大小。这表示不会为结果分配内存,从而提高了垃圾回收性能。请注意,如果传递一个空数组,您将始终获得零个结果。

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

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

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


声明

public int CircleCast(Vector2 origin, float radius, Vector2 direction, float distance, ContactFilter2D contactFilter, List<RaycastHit2D> results);

参数

origin 圆形在 2D 空间中的起始点。
radius 圆形的半径。
direction 表示圆形投射方向的向量。
distance 投射圆形的最大距离。
contactFilter 用于以不同方式过滤结果的接触过滤器,例如通过层遮罩、Z 深度或法线角度。
results 用于接收结果的列表。

返回值

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

描述

在 PhysicsScene2D 中针对碰撞器投射圆形,返回所有交点。

“CircleCast”在概念上类似于在场景中以特定方向拖动一个圆形形状。可以检测并报告与圆形发生接触的任何Collider2D

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

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

其他资源:PhysicsScene2DRaycastHit2D