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

CustomCollider2D

UnityEngine 中的类

/

继承自:Collider2D

/

在以下组件中实现:UnityEngine.Physics2DModule

建议进行更改

成功!

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

关闭

提交失败

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

关闭

取消

说明

表示通过 PhysicsShapeGroup2D 为其分配了 PhysicsShape2D 几何形状的 Collider2D

与通过控制几何参数(例如,Box 的大小或 Circle 的半径)间接定义的所有其他 Collider2D 不同,CustomCollider2D 完全通过添加、删除和修改 PhysicsShape2D 进行定义。这样,会产生一个包含无限数量低级别 PhysicsShape2D 的完全定制的 Collider2D,这些 PhysicsShape2D 可以表示任何类型的形状,或模拟任何其他现有的 Collider2D,例如 CircleCollider2DBoxCollider2DCapsuleCollider2DEdgeCollider2DCompositeCollider2DTilemapCollider2D

除自定义几何形状外,还完全支持所有现有的 Collider2D 功能,例如 触发器物理材质、查询等。

PhysicsShape2D 分配给 CustomCollider2D 时,您可以在编辑模式或播放模式下进行。

在编辑模式下修改 CustomCollider2D 时,所有已分配的 PhysicsShape2D 及其关联的 顶点 都将与 Unity 场景 一起保存。当该 Unity 场景 再次加载时,CustomCollider2D 将保持其配置。这样,其就像在编辑模式下您做出更改的任何其他 Collider2D。利用此功能,可以使用编辑模式创作脚本创建自定义几何体。

在播放模式下修改 CustomCollider2D 时,在退出播放模式时,所有已分配的 PhysicsShape2D 及其关联的 顶点 都将丢失。其行为就像任何其他 Collider2D

属性

customShapeCount分配给该碰撞器的自定义 PhysicsShape2D 的总数。(只读)
customVertexCount碰撞器使用的顶点总数。(只读)

公共方法

ClearCustomShapes从碰撞器中删除所有形状和与其关联的顶点。
GetCustomShapes获取碰撞器中的所有物理形状和顶点,并将其放入指定的 PhysicsShapeGroup2D。
SetCustomShape将单个形状及其所有关联的形状顶点从指定的 physicsShapeGroup 设置到碰撞器。
SetCustomShapes将碰撞器中的所有形状和顶点设置为你指定的 PhysicsShapeGroup2D 所表示的形状和顶点。

继承的成员

属性

enabled启用的行为将被更新,而禁用的行为不会更新。
isActiveAndEnabled报告游戏对象及其关联的行为是否处于活动状态且启用。
attachedRigidbody附加到 Collider2D 的 Rigidbody2D。
bounceCombine碰撞器使用的弹力结合模式。
bounciness碰撞器使用的弹力。
bounds碰撞器的世界空间边界区域。
callbackLayers该 Collider2D 将在与另一个 Collider2D 接触期间报告碰撞或触发器回调的图层。
composite获得可附加到该碰撞器的 CompositeCollider2D。
compositeCapable指示该 Collider2D 是否能够被 CompositeCollider2D 复合。
compositeOperationCompositeCollider2D 要使用的复合操作。
compositeOrder使用 CompositeCollider2D 时要使用的复合操作顺序。
contactCaptureLayers捕获到的参与该 Collider2D 接触的其他 Collider2D 的图层。
density用于计算质量(当质量自动启用时)的碰撞器密度。
errorState表示 2D 碰撞器尝试创建的物理形状状态的错误状态。(只读)
excludeLayers此 Collider2D 在决定与另一个 Collider2D 发生接触或不的情况下应排除的其他图层。
forceReceiveLayers在与另一个 Collider2D 的碰撞接触期间,此 Collider2D 可以从此处接收力的图层。
forceSendLayers在与另一个 Collider2D 的碰撞接触期间,此 Collider2D 被允许发送力的图层。
frictionCollider2D 使用的摩擦力。
frictionCombineCollider2D 使用的摩擦力合并模式。
includeLayers此 Collider2D 在决定与另一个 Collider2D 发生接触或不的情况下应包含的其他图层。
isTrigger此碰撞器是否配置为触发器?
layerOverridePriority当在是否应发生自己与另一个碰撞 2D 之间的接触的问题上存在冲突的决定时,分配给此 Collider2D 的决策优先级。
localToWorldMatrix用于将 Collider 物理形状转换为世界空间的变换矩阵。
offset碰撞器几何的本地偏移量。
shapeCountCollider2D 当前正在使用的活动 PhysicsShape2D 的数量。
sharedMaterial应用到此碰撞器的 PhysicsMaterial2D。
usedByEffector碰撞器是否由附加的效应器使用。
gameObject连接此组件的游戏对象。组件始终连接到游戏对象。
tag此游戏对象的标记。
transform连接到此 GameObject 的 Transform。
hideFlags对象是否应隐藏、随场景保存或由用户修改?
name对象的名称。

公共方法

Cast忽略碰撞器本身,按照在碰撞器位置开始的场景中的碰撞器形状进行投射。
ClosestPoint返回此碰撞器周边最接近指定位置的点。
CreateMesh创建一个平面网格,它与 Collider2D 几何形状所定义的区域完全相同。
Distance根据另一个碰撞器计算此碰撞器的最小间距。
GetContacts检索此碰撞器的所有接触点。
GetShapeBounds检索此 Collider2D 创建的所有 PhysicsShape2D 的边框列表,并返回检索到的列表的组合边框。
GetShapeHash根据 Collider2D 的几何形状生成一个简单的哈希值。
GetShapes获取 Collider2D 使用的所有 PhysicsShape2D。
IsTouching检查此碰撞器是否触碰碰撞器。
IsTouchingLayers检查此碰撞器是否触碰在指定的 layerMask 上的任何碰撞器。
Overlap获得此碰撞体中重叠的所有碰撞体列表。
OverlapPoint检查碰撞体是否在空间中的某个点处重叠。
Raycast在场景中抛射一条光线,该光线从碰撞体位置开始,并忽略碰撞体本身。
BroadcastMessage在该游戏对象或其任何子项中的每个 MonoBehaviour 上调用方法名为 methodName 的方法。
CompareTag将 GameObject 的标签与定义的标签进行检查。
GetComponent获取指定组件上与该组件相同的 Gameobject 上的类型 T 的组件的引用。
GetComponentInChildren获取指定组件上与该组件相同的 Gameobject 或 Gameobject 的任何子项上的类型 T 的组件的引用。
GetComponentIndex获取其父 Gameobject 上的组件的索引。
GetComponentInParent获取指定组件上与该组件相同的 Gameobject 或 Gameobject 任何父项上的类型 T 的组件的引用。
GetComponents获取指定组件上与该组件相同的 Gameobject 上的类型 T 所有组件的引用。
GetComponentsInChildren获取指定组件上与该组件相同的 Gameobject 及 Gameobject 的任何子项上的类型 T 所有组件的引用。
GetComponentsInParent获取指定组件上与该组件相同的 Gameobject 及 Gameobject 的任何父项上的类型 T 所有组件的引用。
SendMessage在该游戏对象中的每个 MonoBehaviour 上调用方法名为 methodName 的方法。
SendMessageUpwards在该游戏对象中的每个 MonoBehaviour 及该行为的每个祖先上调用方法名为 methodName 的方法。
TryGetComponent获取特定类型的组件,如果存在的话。
GetInstanceID获取对象的实例 ID。
ToString返回对象名称。

静态方法

Destroy删除 GameObject、组件或资产。
DestroyImmediate立即销毁对象 obj。强烈建议您改用销毁。
DontDestroyOnLoad在加载新场景时,请勿销毁目标对象。
FindAnyObjectByType检索任何已加载的 Type 类型的活动对象。
FindFirstObjectByType检索 Type 类型的第一个已加载的活动对象。
FindObjectsByType检索 Type 类型的已加载的所有对象的列表。
Instantiate克隆对象 original 并返回克隆对象。
InstantiateAsync拍摄原对象的快照(必须与某些 GameObject 相关),并返回 AsyncInstantiateOperation。

运算符

bool对象是否存在?
运算符 !=比较两个对象是否引用一个不同的对象。
运算符 ==比较两个对象引用是否引用相同对象。

消息

OnCollisionEnter2D当传入的碰撞器与该对象碰撞器接触时发送(仅限 2D 物理)。
OnCollisionExit2D当另一对象上的碰撞器停止触碰该对象碰撞器时发送(仅限 2D 物理)。
OnCollisionStay2D在另一对象上的碰撞器触碰该对象碰撞器的每一帧中发送(仅限 2D 物理)。
OnTriggerEnter2D当另一对象进入附到该对象的触发器碰撞器时发送(仅限 2D 物理)。
OnTriggerExit2D当另一对象离开附到该对象的触发器碰撞器时发送(仅限 2D 物理)。
OnTriggerStay2D在另一对象进入附到该对象的触发器碰撞器的每一帧中发送(仅限 2D 物理)。