Version: 2022.3

CustomCollider2D

class in UnityEngine

/

继承自:Collider2D

切换到手册

描述

Represents a Collider2D that is configured by assigning PhysicsShape2D geometry to it via a PhysicsShapeGroup2D.

Unlike all other Collider2D which are defined indirectly by controlling geometric parameters such as the size of a Box or the radius of a Circle, here the CustomCollider2D is defined entirely by adding, removing and modifying PhysicsShape2D. This results in a fully customized Collider2D containing an unlimited number of low-level PhysicsShape2D which can represent any type of shape or shapes, or emulate any other existing Collider2D such as the CircleCollider2D, BoxCollider2D, CapsuleCollider2D, EdgeCollider2D, CompositeCollider2D or TilemapCollider2D.

Alongside the customized geometry, there is full support for all existing Collider2D functionality such as triggers, physics materials, queries etc.

When assigning PhysicsShape2D to the CustomCollider2D, you can do so either during Edit mode or Play mode.

When modifying the CustomCollider2D during Edit mode, all assigned PhysicsShape2D and associated vertices will be saved with the Unity Scene. When the Unity Scene is loaded again, the CustomCollider2D will maintain its configuration. In this way, it acts like any other Collider2D that you make changes to during Edit mode. Using this ability, Edit mode authoring scripts can be used to create custom geometry.

When modifing the CustomCollider2D during Play mode, all assigned PhysicsShape2D and associated vertices will be lost when exiting Play mode. This acts like any other Collider2D.

变量

customShapeCountThe total number of custom PhysicsShape2D assigned to the Collider. (Read Only)
customVertexCountThe total number of vertices used by the Collider. (Read Only)

公共函数

ClearCustomShapesDeletes all the shapes and associated vertices for those shapes from the Collider.
GetCustomShapesGets all the physics shapes and vertices in the Collider and places them in the specified PhysicsShapeGroup2D.
SetCustomShapeSets a single shape and all associated shape vertices from the specified physicsShapeGroup into the Collider.
SetCustomShapesSets all the shapes and vertices in the Collider to those represented by the specified PhysicsShapeGroup2D.

继承的成员

变量

enabled启用的 Behaviour 可更新,禁用的 Behaviour 不可更新。
isActiveAndEnabledReports whether a GameObject and its associated Behaviour is active and enabled.
attachedRigidbody附加到 Collider2D 的 Rigidbody2D。
bounciness获取碰撞体使用的弹力。
bounds碰撞体的世界空间包围区域。
callbackLayersThe Layers that this Collider2D will report collision or trigger callbacks for during a contact with another Collider2D.
composite获取可附加到该碰撞体的 CompositeCollider2D。
contactCaptureLayersThe layers of other Collider2D involved in contacts with this Collider2D that will be captured.
density碰撞体的密度,用于计算其质量(如果启用自动质量)。
errorStateThe error state that indicates the state of the physics shapes the 2D Collider tried to create. (Read Only)
excludeLayersThe additional Layers that this Collider2D should exclude when deciding if a contact with another Collider2D should happen or not.
forceReceiveLayersThe Layers that this Collider2D can receive forces from during a Collision contact with another Collider2D.
forceSendLayersThe Layers that this Collider2D is allowed to send forces to during a Collision contact with another Collider2D.
friction获取碰撞体使用的摩擦力。
includeLayersThe additional Layers that this Collider2D should include when deciding if a contact with another Collider2D should happen or not.
isTrigger是否将碰撞体配置成了触发器?
layerOverridePriorityA decision priority assigned to this Collider2D used when there is a conflicting decision on whether a contact between itself and another Collision2D should happen or not.
offset碰撞体几何形状的局部偏移。
shapeCountThe number of active PhysicsShape2D the Collider2D is currently using.
sharedMaterial应用于碰撞体的 PhysicsMaterial2D。
usedByComposite设置 CompositeCollider2D 是否将使用碰撞体。
usedByEffector附加的特效器是否使用该碰撞体。
gameObject此组件附加到的游戏对象。始终将组件附加到游戏对象。
tag此游戏对象的标签。
transform附加到此 GameObject 的 Transform。
hideFlags该对象应该隐藏、随场景一起保存还是由用户修改?
name对象的名称。

公共函数

Cast将碰撞体形状投射到从该碰撞体位置开始的场景中,而忽略该碰撞体本身。
ClosestPoint返回此碰撞体周边上最接近指定 position 的点。
CreateMesh创建与 Collider2D 几何体定义的区域相同的平面 Mesh。
Distance计算该碰撞体与另一个碰撞体的最小间距。
GetContacts获取此碰撞体的所有接触点。
GetShapeHash根据 Collider2D 的几何体生成简单哈希值。
GetShapesGets all the PhysicsShape2D used by the Collider2D.
IsTouching检查该碰撞体是否正在接触 /collider/。
IsTouchingLayers检查该碰撞体是否正在接触指定 layerMask 上的任何碰撞体。
OverlapCollider获取与该碰撞体重叠的所有碰撞体的列表。
OverlapPoint检查碰撞体是否与空间中的某个点重叠。
Raycast将光线投射到从碰撞体位置开始的场景中,并忽略碰撞体本身。
BroadcastMessage调用此游戏对象或其任何子项中的每个 MonoBehaviour 上名为 methodName 的方法。
CompareTagChecks the GameObject's tag against the defined tag.
GetComponentGets a reference to a component of type T on the same GameObject as the component specified.
GetComponentInChildrenGets a reference to a component of type T on the same GameObject as the component specified, or any child of the GameObject.
GetComponentInParentGets a reference to a component of type T on the same GameObject as the component specified, or any parent of the GameObject.
GetComponentsGets references to all components of type T on the same GameObject as the component specified.
GetComponentsInChildrenGets references to all components of type T on the same GameObject as the component specified, and any child of the GameObject.
GetComponentsInParentGets references to all components of type T on the same GameObject as the component specified, and any parent of the GameObject.
SendMessage调用此游戏对象中的每个 MonoBehaviour 上名为 methodName 的方法。
SendMessageUpwards调用此游戏对象中的每个 MonoBehaviour 上或此行为的每个父级上名为 methodName 的方法。
TryGetComponent获取指定类型的组件(如果存在)。
GetInstanceIDGets the instance ID of the object.
ToString返回对象的名称。

静态函数

Destroy移除 GameObject、组件或资源。
DestroyImmediate立即销毁对象 /obj/。强烈建议您改用 Destroy。
DontDestroyOnLoad在加载新的 Scene 时,请勿销毁 Object。
FindAnyObjectByTypeRetrieves any active loaded object of Type type.
FindFirstObjectByTypeRetrieves the first active loaded object of Type type.
FindObjectOfType返回第一个类型为 type 的已加载的激活对象。
FindObjectsByTypeRetrieves a list of all loaded objects of Type type.
FindObjectsOfTypeGets a list of all loaded objects of Type type.
Instantiate克隆 original 对象并返回克隆对象。

运算符

bool该对象是否存在?
operator !=比较两个对象是否引用不同的对象。
operator ==比较两个对象引用,判断它们是否引用同一个对象。

消息

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