表示通过 PhysicsShapeGroup2D 为其分配了 PhysicsShape2D 几何形状的 Collider2D。
与通过控制几何参数(例如,Box 的大小或 Circle 的半径)间接定义的所有其他 Collider2D 不同,CustomCollider2D 完全通过添加、删除和修改 PhysicsShape2D 进行定义。这样,会产生一个包含无限数量低级别 PhysicsShape2D 的完全定制的 Collider2D,这些 PhysicsShape2D 可以表示任何类型的形状,或模拟任何其他现有的 Collider2D,例如 CircleCollider2D、BoxCollider2D、CapsuleCollider2D、EdgeCollider2D、CompositeCollider2D 或 TilemapCollider2D。
除自定义几何形状外,还完全支持所有现有的 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 复合。 |
compositeOperation | CompositeCollider2D 要使用的复合操作。 |
compositeOrder | 使用 CompositeCollider2D 时要使用的复合操作顺序。 |
contactCaptureLayers | 捕获到的参与该 Collider2D 接触的其他 Collider2D 的图层。 |
density | 用于计算质量(当质量自动启用时)的碰撞器密度。 |
errorState | 表示 2D 碰撞器尝试创建的物理形状状态的错误状态。(只读) |
excludeLayers | 此 Collider2D 在决定与另一个 Collider2D 发生接触或不的情况下应排除的其他图层。 |
forceReceiveLayers | 在与另一个 Collider2D 的碰撞接触期间,此 Collider2D 可以从此处接收力的图层。 |
forceSendLayers | 在与另一个 Collider2D 的碰撞接触期间,此 Collider2D 被允许发送力的图层。 |
friction | Collider2D 使用的摩擦力。 |
frictionCombine | Collider2D 使用的摩擦力合并模式。 |
includeLayers | 此 Collider2D 在决定与另一个 Collider2D 发生接触或不的情况下应包含的其他图层。 |
isTrigger | 此碰撞器是否配置为触发器? |
layerOverridePriority | 当在是否应发生自己与另一个碰撞 2D 之间的接触的问题上存在冲突的决定时,分配给此 Collider2D 的决策优先级。 |
localToWorldMatrix | 用于将 Collider 物理形状转换为世界空间的变换矩阵。 |
offset | 碰撞器几何的本地偏移量。 |
shapeCount | Collider2D 当前正在使用的活动 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。 |
OnCollisionEnter2D | 当传入的碰撞器与该对象碰撞器接触时发送(仅限 2D 物理)。 |
OnCollisionExit2D | 当另一对象上的碰撞器停止触碰该对象碰撞器时发送(仅限 2D 物理)。 |
OnCollisionStay2D | 在另一对象上的碰撞器触碰该对象碰撞器的每一帧中发送(仅限 2D 物理)。 |
OnTriggerEnter2D | 当另一对象进入附到该对象的触发器碰撞器时发送(仅限 2D 物理)。 |
OnTriggerExit2D | 当另一对象离开附到该对象的触发器碰撞器时发送(仅限 2D 物理)。 |
OnTriggerStay2D | 在另一对象进入附到该对象的触发器碰撞器的每一帧中发送(仅限 2D 物理)。 |