Struct CompoundCollider
A collider containing instances of other colliders.
Inherited Members
Namespace: Unity.Physics
Assembly: Unity.Physics.dll
Syntax
public struct CompoundCollider : ICollider, ICollidable
Properties
Children
Gets the children.
Declaration
public BlobArray.Accessor<CompoundCollider.Child> Children { get; }
Property Value
Type | Description |
---|---|
BlobArray.Accessor<CompoundCollider.Child> | The children. |
CollisionType
Gets the collision type.
Declaration
public CollisionType CollisionType { get; }
Property Value
Type | Description |
---|---|
CollisionType | Collision type. |
MassProperties
Gets the mass properties.
Declaration
public readonly MassProperties MassProperties { get; }
Property Value
Type | Description |
---|---|
MassProperties | The mass properties. |
MemorySize
Gets the memory size (including children).
Declaration
public readonly int MemorySize { get; }
Property Value
Type | Description |
---|---|
int | The size of the memory. |
NumChildren
Gets the number of children.
Declaration
public int NumChildren { get; }
Property Value
Type | Description |
---|---|
int | The total number of children. |
NumColliderKeyBits
Gets the number of collider key bits.
Declaration
public uint NumColliderKeyBits { get; }
Property Value
Type | Description |
---|---|
uint | The total number of collider key bits. |
Type
Gets the type.
Declaration
public ColliderType Type { get; }
Property Value
Type | Description |
---|---|
ColliderType | The type. |
Methods
BakeTransform(AffineTransform)
Bakes the provided transformation into the compound collider geometry, accordingly affecting all its child colliders.
Applies the transformation to the compound collider in local space, consequently scaling, shearing, rotating and translating the geometry of its child colliders exactly or approximately depending on the types of the encountered child colliders and their geometric representations.
Automatically updates the bounding volume information and mass properties of the compound collider after the transformation has been applied.
Declaration
public void BakeTransform(AffineTransform transform)
Parameters
Type | Name | Description |
---|---|---|
AffineTransform | transform | The affine transformation to apply. |
Remarks
This function will do nothing when called on compound colliders that have shared colliders. If you want to use this function on a compound collider, make sure that all of its child colliders are unique. This can be achieved either by forcing all children of the compound collider to be unique at edit time or by ensuring that the list of child collider blobs provided when creating the compound collider doesn't contain any duplicate collider blobs.
BoxCast(float3, quaternion, float3, float3, float, out ColliderCastHit, CollisionFilter, QueryInteraction)
Box cast.
Declaration
public bool BoxCast(float3 center, quaternion orientation, float3 halfExtents, float3 direction, float maxDistance, out ColliderCastHit hitInfo, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | center | The center. |
quaternion | orientation | The orientation. |
float3 | halfExtents | Half extents of the box. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
ColliderCastHit | hitInfo | [out] Information describing the hit. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
BoxCast(float3, quaternion, float3, float3, float, CollisionFilter, QueryInteraction)
Box cast.
Declaration
public bool BoxCast(float3 center, quaternion orientation, float3 halfExtents, float3 direction, float maxDistance, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | center | The center. |
quaternion | orientation | The orientation. |
float3 | halfExtents | Half extents of the box. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
BoxCastAll(float3, quaternion, float3, float3, float, ref NativeList<ColliderCastHit>, CollisionFilter, QueryInteraction)
Box cast all.
Declaration
public bool BoxCastAll(float3 center, quaternion orientation, float3 halfExtents, float3 direction, float maxDistance, ref NativeList<ColliderCastHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | center | The center. |
quaternion | orientation | The orientation. |
float3 | halfExtents | Half extents of the box. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
NativeList<ColliderCastHit> | outHits | [in,out] The out hits. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
BoxCastCustom<T>(float3, quaternion, float3, float3, float, ref T, CollisionFilter, QueryInteraction)
Box cast custom.
Declaration
public bool BoxCastCustom<T>(float3 center, quaternion orientation, float3 halfExtents, float3 direction, float maxDistance, ref T collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollector<ColliderCastHit>
Parameters
Type | Name | Description |
---|---|---|
float3 | center | The center. |
quaternion | orientation | The orientation. |
float3 | halfExtents | Half extents of the box. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
T | collector | [in,out] The collector. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
Type Parameters
Name | Description |
---|---|
T | Generic type parameter. |
CalculateAabb()
Calculates the aabb.
Declaration
public Aabb CalculateAabb()
Returns
Type | Description |
---|---|
Aabb | The calculated aabb. |
CalculateAabb(RigidTransform, float)
Calculates the aabb.
Declaration
public Aabb CalculateAabb(RigidTransform transform, float uniformScale = 1)
Parameters
Type | Name | Description |
---|---|---|
RigidTransform | transform | The transform. |
float | uniformScale | (Optional) The uniform scale. |
Returns
Type | Description |
---|---|
Aabb | The calculated aabb. |
CalculateDistance(ColliderDistanceInput)
Calculate the distance from another collider to this one.
Declaration
public bool CalculateDistance(ColliderDistanceInput input)
Parameters
Type | Name | Description |
---|---|---|
ColliderDistanceInput | input | The input. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CalculateDistance(ColliderDistanceInput, ref NativeList<DistanceHit>)
Calculates the distance.
Declaration
public bool CalculateDistance(ColliderDistanceInput input, ref NativeList<DistanceHit> allHits)
Parameters
Type | Name | Description |
---|---|---|
ColliderDistanceInput | input | The input. |
NativeList<DistanceHit> | allHits | [in,out] all hits. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CalculateDistance(ColliderDistanceInput, out DistanceHit)
Calculates the distance.
Declaration
public bool CalculateDistance(ColliderDistanceInput input, out DistanceHit closestHit)
Parameters
Type | Name | Description |
---|---|---|
ColliderDistanceInput | input | The input. |
DistanceHit | closestHit | [out] The closest hit. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CalculateDistance(PointDistanceInput)
Calculate the distance from a point to this collider.
Declaration
public bool CalculateDistance(PointDistanceInput input)
Parameters
Type | Name | Description |
---|---|---|
PointDistanceInput | input | The input. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CalculateDistance(PointDistanceInput, ref NativeList<DistanceHit>)
Calculates the distance.
Declaration
public bool CalculateDistance(PointDistanceInput input, ref NativeList<DistanceHit> allHits)
Parameters
Type | Name | Description |
---|---|---|
PointDistanceInput | input | The input. |
NativeList<DistanceHit> | allHits | [in,out] all hits. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CalculateDistance(PointDistanceInput, out DistanceHit)
Calculates the distance.
Declaration
public bool CalculateDistance(PointDistanceInput input, out DistanceHit closestHit)
Parameters
Type | Name | Description |
---|---|---|
PointDistanceInput | input | The input. |
DistanceHit | closestHit | [out] The closest hit. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CalculateDistance<T>(ColliderDistanceInput, ref T)
Calculates the distance.
Declaration
public bool CalculateDistance<T>(ColliderDistanceInput input, ref T collector) where T : struct, ICollector<DistanceHit>
Parameters
Type | Name | Description |
---|---|---|
ColliderDistanceInput | input | The input. |
T | collector | [in,out] The collector. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
Type Parameters
Name | Description |
---|---|
T | Generic type parameter. |
CalculateDistance<T>(PointDistanceInput, ref T)
Calculates the distance.
Declaration
public bool CalculateDistance<T>(PointDistanceInput input, ref T collector) where T : struct, ICollector<DistanceHit>
Parameters
Type | Name | Description |
---|---|---|
PointDistanceInput | input | The input. |
T | collector | [in,out] The collector. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
Type Parameters
Name | Description |
---|---|
T | Generic type parameter. |
CapsuleCast(float3, float3, float, float3, float, out ColliderCastHit, CollisionFilter, QueryInteraction)
Capsule cast.
Declaration
public bool CapsuleCast(float3 point1, float3 point2, float radius, float3 direction, float maxDistance, out ColliderCastHit hitInfo, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | point1 | The first point in capsule definition. |
float3 | point2 | The second point in capsule definition. |
float | radius | The radius. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
ColliderCastHit | hitInfo | [out] Information describing the hit. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CapsuleCast(float3, float3, float, float3, float, CollisionFilter, QueryInteraction)
Capsule cast.
Declaration
public bool CapsuleCast(float3 point1, float3 point2, float radius, float3 direction, float maxDistance, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | point1 | The first point in capsule definition. |
float3 | point2 | The second point in capsule definition. |
float | radius | The radius. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CapsuleCastAll(float3, float3, float, float3, float, ref NativeList<ColliderCastHit>, CollisionFilter, QueryInteraction)
Capsule cast all.
Declaration
public bool CapsuleCastAll(float3 point1, float3 point2, float radius, float3 direction, float maxDistance, ref NativeList<ColliderCastHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | point1 | The first point in capsule definition. |
float3 | point2 | The second point in capsule definition. |
float | radius | The radius. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
NativeList<ColliderCastHit> | outHits | [in,out] The out hits. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CapsuleCastCustom<T>(float3, float3, float, float3, float, ref T, CollisionFilter, QueryInteraction)
Capsule cast custom.
Declaration
public bool CapsuleCastCustom<T>(float3 point1, float3 point2, float radius, float3 direction, float maxDistance, ref T collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollector<ColliderCastHit>
Parameters
Type | Name | Description |
---|---|---|
float3 | point1 | The first point in capsule definition. |
float3 | point2 | The second point in capsule definition. |
float | radius | The radius. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
T | collector | [in,out] The collector. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
Type Parameters
Name | Description |
---|---|
T | Generic type parameter. |
CastCollider(ColliderCastInput)
Cast another collider against this one.
Declaration
public bool CastCollider(ColliderCastInput input)
Parameters
Type | Name | Description |
---|---|---|
ColliderCastInput | input | The input. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CastCollider(ColliderCastInput, ref NativeList<ColliderCastHit>)
Cast collider.
Declaration
public bool CastCollider(ColliderCastInput input, ref NativeList<ColliderCastHit> allHits)
Parameters
Type | Name | Description |
---|---|---|
ColliderCastInput | input | The input. |
NativeList<ColliderCastHit> | allHits | [in,out] all hits. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CastCollider(ColliderCastInput, out ColliderCastHit)
Cast collider.
Declaration
public bool CastCollider(ColliderCastInput input, out ColliderCastHit closestHit)
Parameters
Type | Name | Description |
---|---|---|
ColliderCastInput | input | The input. |
ColliderCastHit | closestHit | [out] The closest hit. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CastCollider<T>(ColliderCastInput, ref T)
Cast collider.
Declaration
public bool CastCollider<T>(ColliderCastInput input, ref T collector) where T : struct, ICollector<ColliderCastHit>
Parameters
Type | Name | Description |
---|---|---|
ColliderCastInput | input | The input. |
T | collector | [in,out] The collector. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
Type Parameters
Name | Description |
---|---|
T | Generic type parameter. |
CastRay(RaycastInput)
Cast a ray against this collider.
Declaration
public bool CastRay(RaycastInput input)
Parameters
Type | Name | Description |
---|---|---|
RaycastInput | input | The input. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CastRay(RaycastInput, ref NativeList<RaycastHit>)
Cast ray.
Declaration
public bool CastRay(RaycastInput input, ref NativeList<RaycastHit> allHits)
Parameters
Type | Name | Description |
---|---|---|
RaycastInput | input | The input. |
NativeList<RaycastHit> | allHits | [in,out] all hits. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CastRay(RaycastInput, out RaycastHit)
Cast ray.
Declaration
public bool CastRay(RaycastInput input, out RaycastHit closestHit)
Parameters
Type | Name | Description |
---|---|---|
RaycastInput | input | The input. |
RaycastHit | closestHit | [out] The closest hit. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CastRay<T>(RaycastInput, ref T)
Cast ray.
Declaration
public bool CastRay<T>(RaycastInput input, ref T collector) where T : struct, ICollector<RaycastHit>
Parameters
Type | Name | Description |
---|---|---|
RaycastInput | input | The input. |
T | collector | [in,out] The collector. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
Type Parameters
Name | Description |
---|---|
T | Generic type parameter. |
CheckBox(float3, quaternion, float3, CollisionFilter, QueryInteraction)
Check box.
Declaration
public bool CheckBox(float3 center, quaternion orientation, float3 halfExtents, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | center | The center. |
quaternion | orientation | The orientation. |
float3 | halfExtents | Half extents of the box. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CheckCapsule(float3, float3, float, CollisionFilter, QueryInteraction)
Check capsule.
Declaration
public bool CheckCapsule(float3 point1, float3 point2, float radius, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | point1 | The first point in capsule definition. |
float3 | point2 | The second point in capsule definition. |
float | radius | The radius. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
CheckSphere(float3, float, CollisionFilter, QueryInteraction)
Check if the sphere is overlapping this collider.
Declaration
public bool CheckSphere(float3 position, float radius, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | position | The position. |
float | radius | The radius. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
ConvertChildIndexToColliderKey(int)
An utility method that converts child index to collider key.
Declaration
public ColliderKey ConvertChildIndexToColliderKey(int childIndex)
Parameters
Type | Name | Description |
---|---|---|
int | childIndex | Zero-based index of the child. |
Returns
Type | Description |
---|---|
ColliderKey | The child converted index to collider key. |
Create(NativeArray<ColliderBlobInstance>)
Create a compound collider containing an array of other colliders. The source colliders from
children
are copied into the new compound collider, so that it becomes one blob.
Declaration
public static BlobAssetReference<Collider> Create(NativeArray<CompoundCollider.ColliderBlobInstance> children)
Parameters
Type | Name | Description |
---|---|---|
NativeArray<CompoundCollider.ColliderBlobInstance> | children | The children. Their individual blobs can be safely disposed after the compound collider is created, if they're no longer needed. |
Returns
Type | Description |
---|---|
BlobAssetReference<Collider> | A BlobAssetReference<Collider> |
GetChild(ref ColliderKey, out ChildCollider)
Gets a child of this collider.
Declaration
public bool GetChild(ref ColliderKey key, out ChildCollider child)
Parameters
Type | Name | Description |
---|---|---|
ColliderKey | key | [in,out] The key that identifies the child. Gets modified by removing the bits associated with the child collider. |
ChildCollider | child | [out] The child. |
Returns
Type | Description |
---|---|
bool | True if there is a child with the specified key, false otherwise. |
GetColliderKeyToChildrenMapping(ref NativeHashMap<ColliderKey, ChildCollider>)
Fills the passed in map with ColliderKey - ChildCollider pairs of this compound collider.
Declaration
public void GetColliderKeyToChildrenMapping(ref NativeHashMap<ColliderKey, ChildCollider> colliderKeyToChildrenMapping)
Parameters
Type | Name | Description |
---|---|---|
NativeHashMap<ColliderKey, ChildCollider> | colliderKeyToChildrenMapping | [in,out] The collider key to children mapping. |
GetCollisionFilter()
Get the root level filter that can be used for a quick dismiss of the collision/query. Individual children can have their own collision filters for further filtering. This filter is a union of all child filters.
Declaration
public CollisionFilter GetCollisionFilter()
Returns
Type | Description |
---|---|
CollisionFilter | The root collision filter. |
GetCollisionFilter(ColliderKey)
Gets the collision filter of the child specified by the collider key.
Declaration
public CollisionFilter GetCollisionFilter(ColliderKey colliderKey)
Parameters
Type | Name | Description |
---|---|---|
ColliderKey | colliderKey | The child collider key. |
Returns
Type | Description |
---|---|
CollisionFilter | The collision filter of the child specified by the collider key. If the key is empty, it will return root filter. If the key is invalid, it will throw an exception. |
GetLeaf(ColliderKey, out ChildCollider)
Gets a leaf collider.
Declaration
public bool GetLeaf(ColliderKey key, out ChildCollider leaf)
Parameters
Type | Name | Description |
---|---|---|
ColliderKey | key | The key representing the leaf collider. |
ChildCollider | leaf | [out] The leaf. |
Returns
Type | Description |
---|---|
bool | True if a leaf with the specified key exists, otherwise false. |
GetLeaves<T>(ref T)
Gets the leaf colliders of this collider .
Declaration
public void GetLeaves<T>(ref T collector) where T : struct, ILeafColliderCollector
Parameters
Type | Name | Description |
---|---|---|
T | collector | [in,out] The collector. |
Type Parameters
Name | Description |
---|---|
T | Generic type parameter. |
HasSharedChildColliders()
Indicates whether this compound collider contains shared child colliders, that is, two or more child colliders within this compound collider share the same collider blob.
Declaration
public bool HasSharedChildColliders()
Returns
Type | Description |
---|---|
bool | True if this compound collider contains shared child colliders, false otherwise. |
Remarks
This situation occurs if during compound collider creation the provided array of child collider blobs contains duplicate entries (identical collider blob pointers).
OverlapBox(float3, quaternion, float3, ref NativeList<DistanceHit>, CollisionFilter, QueryInteraction)
Overlap box.
Declaration
public bool OverlapBox(float3 center, quaternion orientation, float3 halfExtents, ref NativeList<DistanceHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | center | The center. |
quaternion | orientation | The orientation. |
float3 | halfExtents | Half extents of the box. |
NativeList<DistanceHit> | outHits | [in,out] The out hits. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
OverlapBoxCustom<T>(float3, quaternion, float3, ref T, CollisionFilter, QueryInteraction)
Overlap box custom.
Declaration
public bool OverlapBoxCustom<T>(float3 center, quaternion orientation, float3 halfExtents, ref T collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollector<DistanceHit>
Parameters
Type | Name | Description |
---|---|---|
float3 | center | The center. |
quaternion | orientation | The orientation. |
float3 | halfExtents | Half extents of the box. |
T | collector | [in,out] The collector. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
Type Parameters
Name | Description |
---|---|
T | Generic type parameter. |
OverlapCapsule(float3, float3, float, ref NativeList<DistanceHit>, CollisionFilter, QueryInteraction)
Overlap capsule.
Declaration
public bool OverlapCapsule(float3 point1, float3 point2, float radius, ref NativeList<DistanceHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | point1 | The first point in capsule definition. |
float3 | point2 | The second point in capsule definition. |
float | radius | The radius. |
NativeList<DistanceHit> | outHits | [in,out] The out hits. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
OverlapCapsuleCustom<T>(float3, float3, float, ref T, CollisionFilter, QueryInteraction)
Overlap capsule custom.
Declaration
public bool OverlapCapsuleCustom<T>(float3 point1, float3 point2, float radius, ref T collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollector<DistanceHit>
Parameters
Type | Name | Description |
---|---|---|
float3 | point1 | The first point in capsule definition. |
float3 | point2 | The second point in capsule definition. |
float | radius | The radius. |
T | collector | [in,out] The collector. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
Type Parameters
Name | Description |
---|---|
T | Generic type parameter. |
OverlapSphere(float3, float, ref NativeList<DistanceHit>, CollisionFilter, QueryInteraction)
Overlap sphere.
Declaration
public bool OverlapSphere(float3 position, float radius, ref NativeList<DistanceHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | position | The position. |
float | radius | The radius. |
NativeList<DistanceHit> | outHits | [in,out] The out hits. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
OverlapSphereCustom<T>(float3, float, ref T, CollisionFilter, QueryInteraction)
Overlap sphere custom.
Declaration
public bool OverlapSphereCustom<T>(float3 position, float radius, ref T collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollector<DistanceHit>
Parameters
Type | Name | Description |
---|---|---|
float3 | position | The position. |
float | radius | The radius. |
T | collector | [in,out] The collector. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
Type Parameters
Name | Description |
---|---|
T | Generic type parameter. |
RefreshCollisionFilter()
Refreshes combined collision filter of all children. Should be called when child collision filter changes.
Declaration
public void RefreshCollisionFilter()
SetCollisionFilter(CollisionFilter)
Sets the root collision filter. This also sets the filter of all children to the input value.
Declaration
public void SetCollisionFilter(CollisionFilter filter)
Parameters
Type | Name | Description |
---|---|---|
CollisionFilter | filter | Specifies the filter. |
SetCollisionFilter(CollisionFilter, ColliderKey)
Sets collision filter of the child specified by collider key. If the provided key is empty, it will set the root filter and the filter of all children to the provided value. If the filter is invalid, it will throw an exception. After setting the child filter, this function will also call RefreshCollisionFilter() to update the root filter based on the new child filter value.
Declaration
public void SetCollisionFilter(CollisionFilter filter, ColliderKey colliderKey)
Parameters
Type | Name | Description |
---|---|---|
CollisionFilter | filter | Specifies the filter. |
ColliderKey | colliderKey | The collider key. |
SetCollisionFilter(CollisionFilter, ColliderKey, bool)
Sets collision filter of the child specified by collider key. If the provided key is empty, it will set the root filter and the filter of all children to the provided value. If the filter is invalid, it will throw an exception. If refreshCompoundFilter is set to false, this function will not call RefreshCollisionFilter(), and should be used in cases of updating multiple child colliders at once, where you will need to call RefreshCollisionFilter() manually after the last child filter is updated.
Declaration
public void SetCollisionFilter(CollisionFilter filter, ColliderKey childKey, bool refreshCompoundFilter)
Parameters
Type | Name | Description |
---|---|---|
CollisionFilter | filter | Specifies the filter. |
ColliderKey | childKey | The child key. |
bool | refreshCompoundFilter | True to refresh compound filter. |
SphereCast(float3, float, float3, float, out ColliderCastHit, CollisionFilter, QueryInteraction)
Sphere cast.
Declaration
public bool SphereCast(float3 origin, float radius, float3 direction, float maxDistance, out ColliderCastHit hitInfo, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | origin | The origin. |
float | radius | The radius. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
ColliderCastHit | hitInfo | [out] Information describing the hit. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
SphereCast(float3, float, float3, float, CollisionFilter, QueryInteraction)
Sphere cast.
Declaration
public bool SphereCast(float3 origin, float radius, float3 direction, float maxDistance, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | origin | The origin. |
float | radius | The radius. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
SphereCastAll(float3, float, float3, float, ref NativeList<ColliderCastHit>, CollisionFilter, QueryInteraction)
Sphere cast all.
Declaration
public bool SphereCastAll(float3 origin, float radius, float3 direction, float maxDistance, ref NativeList<ColliderCastHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
Parameters
Type | Name | Description |
---|---|---|
float3 | origin | The origin. |
float | radius | The radius. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
NativeList<ColliderCastHit> | outHits | [in,out] The out hits. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
SphereCastCustom<T>(float3, float, float3, float, ref T, CollisionFilter, QueryInteraction)
Sphere cast custom.
Declaration
public bool SphereCastCustom<T>(float3 origin, float radius, float3 direction, float maxDistance, ref T collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollector<ColliderCastHit>
Parameters
Type | Name | Description |
---|---|---|
float3 | origin | The origin. |
float | radius | The radius. |
float3 | direction | The direction. |
float | maxDistance | The maximum distance. |
T | collector | [in,out] The collector. |
CollisionFilter | filter | Specifies the filter. |
QueryInteraction | queryInteraction | (Optional) The query interaction. |
Returns
Type | Description |
---|---|
bool | True if there is a hit, false otherwise. |
Type Parameters
Name | Description |
---|---|
T | Generic type parameter. |
Update(bool)
Updates the compound collider's bounding volume information and optionally also its mass properties.
For correct behavior in collision detection and collider queries, this function must be called after the shape or transformation of the compound collider's children have been modified.
Declaration
public void Update(bool updateMassProperties = true)
Parameters
Type | Name | Description |
---|---|---|
bool | updateMassProperties | If true, also updates the mass properties of the compound collider. |
Remarks
Note that this function only performs a refit of the compound collider's bounding volume hierarchy, which is a very efficient way to ensure its proper function in the collision detection and in collider queries. However, a refit likely leaves the bounding hierarchy in a suboptimal state, specifically if substantial changes have been made to the compound collider's children. This can lead to performance reductions in collision detection and collider queries. In such cases, consider recreating the compound collider from scratch instead.