docs.unity3d.com
    Show / Hide Table of Contents

    Struct CollisionWorld

    A collection of rigid bodies wrapped by a bounding volume hierarchy. This allows to do collision queries such as raycasting, overlap testing, etc.

    Inherited Members
    ValueType.Equals(Object)
    ValueType.GetHashCode()
    ValueType.ToString()
    Object.Equals(Object, Object)
    Object.ReferenceEquals(Object, Object)
    Object.GetType()
    Namespace: Unity.Physics
    Syntax
    [NoAlias]
    public struct CollisionWorld : ICollidable, IAspectQueryable, IDisposable

    Constructors

    CollisionWorld(Int32, Int32)

    Construct a collision world with the given number of uninitialized rigid bodies.

    Declaration
    public CollisionWorld(int numStaticBodies, int numDynamicBodies)
    Parameters
    Type Name Description
    Int32 numStaticBodies

    Number of static bodies.

    Int32 numDynamicBodies

    Number of dynamic bodies.

    Properties

    Bodies

    Gets the bodies.

    Declaration
    public readonly NativeArray<RigidBody> Bodies { get; }
    Property Value
    Type Description
    NativeArray<RigidBody>

    The bodies.

    CollisionTolerance

    Contacts are always created between rigid bodies if they are closer than this distance threshold.

    Declaration
    public readonly float CollisionTolerance { get; }
    Property Value
    Type Description
    Single

    The collision tolerance.

    DynamicBodies

    Gets the dynamic bodies.

    Declaration
    public readonly NativeArray<RigidBody> DynamicBodies { get; }
    Property Value
    Type Description
    NativeArray<RigidBody>

    The dynamic bodies.

    NumBodies

    Gets the number of bodies.

    Declaration
    public readonly int NumBodies { get; }
    Property Value
    Type Description
    Int32

    The total number of bodies.

    NumDynamicBodies

    Gets the number of dynamic bodies.

    Declaration
    public readonly int NumDynamicBodies { get; }
    Property Value
    Type Description
    Int32

    The total number of dynamic bodies.

    NumStaticBodies

    Gets the number of static bodies.

    Declaration
    public readonly int NumStaticBodies { get; }
    Property Value
    Type Description
    Int32

    The total number of static bodies.

    StaticBodies

    Gets the static bodies.

    Declaration
    public readonly NativeArray<RigidBody> StaticBodies { get; }
    Property Value
    Type Description
    NativeArray<RigidBody>

    The static bodies.

    Methods

    BoxCast(float3, quaternion, float3, float3, Single, 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.

    Single 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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.BoxCast(float3, quaternion, float3, float3, Single, out ColliderCastHit, CollisionFilter, QueryInteraction)

    BoxCast(float3, quaternion, float3, float3, Single, 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.

    Single maxDistance

    The maximum distance.

    CollisionFilter filter

    Specifies the filter.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.BoxCast(float3, quaternion, float3, float3, Single, CollisionFilter, QueryInteraction)

    BoxCastAll(float3, quaternion, float3, float3, Single, 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.

    Single 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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.BoxCastAll(float3, quaternion, float3, float3, Single, ref NativeList<ColliderCastHit>, CollisionFilter, QueryInteraction)

    BoxCastCustom<T>(float3, quaternion, float3, float3, Single, 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.

    Single maxDistance

    The maximum distance.

    T collector

    [in,out] The collector.

    CollisionFilter filter

    Specifies the filter.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    ICollidable.BoxCastCustom<T>(float3, quaternion, float3, float3, Single, ref T, CollisionFilter, QueryInteraction)

    BuildBroadphase(ref PhysicsWorld, Single, float3, Boolean)

    Build the broadphase based on the given world.

    Declaration
    public void BuildBroadphase(ref PhysicsWorld world, float timeStep, float3 gravity, bool buildStaticTree = true)
    Parameters
    Type Name Description
    PhysicsWorld world

    [in,out] The world.

    Single timeStep

    The time step.

    float3 gravity

    The gravity.

    Boolean buildStaticTree

    (Optional) True to build static tree.

    CalculateAabb()

    Calculates the aabb.

    Declaration
    public Aabb CalculateAabb()
    Returns
    Type Description
    Aabb

    The calculated aabb.

    Implements
    ICollidable.CalculateAabb()

    CalculateDistance(in ColliderAspect, Single, ref NativeList<DistanceHit>, QueryInteraction)

    Calculates the distance from the collider aspect.

    Declaration
    public bool CalculateDistance(in ColliderAspect colliderAspect, float maxDistance, ref NativeList<DistanceHit> allHits, QueryInteraction queryInteraction = QueryInteraction.Default)
    Parameters
    Type Name Description
    ColliderAspect colliderAspect

    The collider aspect.

    Single maxDistance

    The maximum distance.

    NativeList<DistanceHit> allHits

    [in,out] all hits.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    IAspectQueryable.CalculateDistance(in ColliderAspect, Single, ref NativeList<DistanceHit>, QueryInteraction)

    CalculateDistance(in ColliderAspect, Single, out DistanceHit, QueryInteraction)

    Calculates the distance from the collider aspect.

    Declaration
    public bool CalculateDistance(in ColliderAspect colliderAspect, float maxDistance, out DistanceHit closestHit, QueryInteraction queryInteraction = QueryInteraction.Default)
    Parameters
    Type Name Description
    ColliderAspect colliderAspect

    The collider aspect.

    Single maxDistance

    The maximum distance.

    DistanceHit closestHit

    [out] The closest hit.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    IAspectQueryable.CalculateDistance(in ColliderAspect, Single, out DistanceHit, QueryInteraction)

    CalculateDistance(in ColliderAspect, Single, QueryInteraction)

    Calculates the distance from the collider aspect.

    Declaration
    public bool CalculateDistance(in ColliderAspect colliderAspect, float maxDistance, QueryInteraction queryInteraction = QueryInteraction.Default)
    Parameters
    Type Name Description
    ColliderAspect colliderAspect

    The collider aspect.

    Single maxDistance

    The maximum distance.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    IAspectQueryable.CalculateDistance(in ColliderAspect, Single, QueryInteraction)

    CalculateDistance(ColliderDistanceInput)

    Calculates the distance.

    Declaration
    public bool CalculateDistance(ColliderDistanceInput input)
    Parameters
    Type Name Description
    ColliderDistanceInput input

    The input.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CalculateDistance(ColliderDistanceInput)

    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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CalculateDistance(ColliderDistanceInput, ref NativeList<DistanceHit>)

    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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CalculateDistance(ColliderDistanceInput, out DistanceHit)

    CalculateDistance(PointDistanceInput)

    Calculates the distance.

    Declaration
    public bool CalculateDistance(PointDistanceInput input)
    Parameters
    Type Name Description
    PointDistanceInput input

    The input.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CalculateDistance(PointDistanceInput)

    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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CalculateDistance(PointDistanceInput, ref NativeList<DistanceHit>)

    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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CalculateDistance(PointDistanceInput, out DistanceHit)

    CalculateDistance<T>(in ColliderAspect, Single, ref T, QueryInteraction)

    Calculates the distance from the collider aspect.

    Declaration
    public bool CalculateDistance<T>(in ColliderAspect colliderAspect, float maxDistance, ref T collector, QueryInteraction queryInteraction = QueryInteraction.Default)
        where T : struct, ICollector<DistanceHit>
    Parameters
    Type Name Description
    ColliderAspect colliderAspect

    The collider aspect.

    Single maxDistance

    The maximum distance.

    T collector

    [in,out] The collector.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    IAspectQueryable.CalculateDistance<T>(in ColliderAspect, Single, ref T, QueryInteraction)

    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
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    ICollidable.CalculateDistance<T>(ColliderDistanceInput, ref T)

    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
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    ICollidable.CalculateDistance<T>(PointDistanceInput, ref T)

    CapsuleCast(float3, float3, Single, float3, Single, 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.

    Single radius

    The radius.

    float3 direction

    The direction.

    Single 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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CapsuleCast(float3, float3, Single, float3, Single, out ColliderCastHit, CollisionFilter, QueryInteraction)

    CapsuleCast(float3, float3, Single, float3, Single, 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.

    Single radius

    The radius.

    float3 direction

    The direction.

    Single maxDistance

    The maximum distance.

    CollisionFilter filter

    Specifies the filter.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CapsuleCast(float3, float3, Single, float3, Single, CollisionFilter, QueryInteraction)

    CapsuleCastAll(float3, float3, Single, float3, Single, 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.

    Single radius

    The radius.

    float3 direction

    The direction.

    Single 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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CapsuleCastAll(float3, float3, Single, float3, Single, ref NativeList<ColliderCastHit>, CollisionFilter, QueryInteraction)

    CapsuleCastCustom<T>(float3, float3, Single, float3, Single, 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.

    Single radius

    The radius.

    float3 direction

    The direction.

    Single maxDistance

    The maximum distance.

    T collector

    [in,out] The collector.

    CollisionFilter filter

    Specifies the filter.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    ICollidable.CapsuleCastCustom<T>(float3, float3, Single, float3, Single, ref T, CollisionFilter, QueryInteraction)

    CastCollider(in ColliderAspect, float3, Single, ref NativeList<ColliderCastHit>, QueryInteraction)

    Cast a collider aspect against this CollisionWorld.

    Declaration
    public bool CastCollider(in ColliderAspect colliderAspect, float3 direction, float maxDistance, ref NativeList<ColliderCastHit> allHits, QueryInteraction queryInteraction = QueryInteraction.Default)
    Parameters
    Type Name Description
    ColliderAspect colliderAspect

    The collider aspect.

    float3 direction

    The direction of the aspect.

    Single maxDistance

    The maximum distance.

    NativeList<ColliderCastHit> allHits

    [in,out] all hits.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    IAspectQueryable.CastCollider(in ColliderAspect, float3, Single, ref NativeList<ColliderCastHit>, QueryInteraction)

    CastCollider(in ColliderAspect, float3, Single, out ColliderCastHit, QueryInteraction)

    Cast a collider aspect against this CollisionWorld.

    Declaration
    public bool CastCollider(in ColliderAspect colliderAspect, float3 direction, float maxDistance, out ColliderCastHit closestHit, QueryInteraction queryInteraction = QueryInteraction.Default)
    Parameters
    Type Name Description
    ColliderAspect colliderAspect

    The collider aspect.

    float3 direction

    The direction of the aspect.

    Single maxDistance

    The maximum distance.

    ColliderCastHit closestHit

    [out] The closest hit.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    IAspectQueryable.CastCollider(in ColliderAspect, float3, Single, out ColliderCastHit, QueryInteraction)

    CastCollider(in ColliderAspect, float3, Single, QueryInteraction)

    Cast a collider aspect against this CollisionWorld.

    Declaration
    public bool CastCollider(in ColliderAspect colliderAspect, float3 direction, float maxDistance, QueryInteraction queryInteraction = QueryInteraction.Default)
    Parameters
    Type Name Description
    ColliderAspect colliderAspect

    The collider aspect.

    float3 direction

    The direction of the aspect.

    Single maxDistance

    The maximum distance.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    IAspectQueryable.CastCollider(in ColliderAspect, float3, Single, QueryInteraction)

    CastCollider(ColliderCastInput)

    Cast collider.

    Declaration
    public bool CastCollider(ColliderCastInput input)
    Parameters
    Type Name Description
    ColliderCastInput input

    The input.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CastCollider(ColliderCastInput)

    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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CastCollider(ColliderCastInput, ref NativeList<ColliderCastHit>)

    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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CastCollider(ColliderCastInput, out ColliderCastHit)

    CastCollider<T>(in ColliderAspect, float3, Single, ref T, QueryInteraction)

    Cast a collider aspect against this CollisionWorld.

    Declaration
    public bool CastCollider<T>(in ColliderAspect colliderAspect, float3 direction, float maxDistance, ref T collector, QueryInteraction queryInteraction = QueryInteraction.Default)
        where T : struct, ICollector<ColliderCastHit>
    Parameters
    Type Name Description
    ColliderAspect colliderAspect

    The collider aspect.

    float3 direction

    The direction of the aspect.

    Single maxDistance

    The maximum distance.

    T collector

    [in,out] The collector.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    IAspectQueryable.CastCollider<T>(in ColliderAspect, float3, Single, ref T, QueryInteraction)

    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
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    ICollidable.CastCollider<T>(ColliderCastInput, ref T)

    CastRay(RaycastInput)

    Cast ray.

    Declaration
    public bool CastRay(RaycastInput input)
    Parameters
    Type Name Description
    RaycastInput input

    The input.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CastRay(RaycastInput)

    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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CastRay(RaycastInput, ref NativeList<RaycastHit>)

    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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CastRay(RaycastInput, out RaycastHit)

    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
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    ICollidable.CastRay<T>(RaycastInput, ref T)

    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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CheckBox(float3, quaternion, float3, CollisionFilter, QueryInteraction)

    CheckCapsule(float3, float3, Single, 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.

    Single radius

    The radius.

    CollisionFilter filter

    Specifies the filter.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CheckCapsule(float3, float3, Single, CollisionFilter, QueryInteraction)

    CheckSphere(float3, Single, CollisionFilter, QueryInteraction)

    Interfaces that represent queries that exist in the GameObjects world.

    Declaration
    public bool CheckSphere(float3 position, float radius, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default)
    Parameters
    Type Name Description
    float3 position

    The position.

    Single radius

    The radius.

    CollisionFilter filter

    Specifies the filter.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.CheckSphere(float3, Single, CollisionFilter, QueryInteraction)

    Clone()

    Clone the world. Bodies and Broadphase are deep copied. Colliders are shallow copied.

    Declaration
    public CollisionWorld Clone()
    Returns
    Type Description
    CollisionWorld

    A copy of this object.

    Dispose()

    Free internal memory.

    Declaration
    public void Dispose()
    Implements
    IDisposable.Dispose()

    FindOverlaps(ref NativeStream.Writer, ref NativeStream.Writer)

    Write all overlapping body pairs to the given streams, where at least one of the bodies is dynamic. The results are unsorted.

    Declaration
    public void FindOverlaps(ref NativeStream.Writer dynamicVsDynamicPairsWriter, ref NativeStream.Writer staticVsDynamicPairsWriter)
    Parameters
    Type Name Description
    NativeStream.Writer dynamicVsDynamicPairsWriter

    [in,out] The dynamic vs dynamic pairs writer.

    NativeStream.Writer staticVsDynamicPairsWriter

    [in,out] The static vs dynamic pairs writer.

    GetRigidBodyIndex(Entity)

    Gets the zero-based index of the rigid body.

    Declaration
    public int GetRigidBodyIndex(Entity entity)
    Parameters
    Type Name Description
    Entity entity

    The entity.

    Returns
    Type Description
    Int32

    The rigid body index.

    OverlapAabb(OverlapAabbInput, ref NativeList<Int32>)

    Test input against the broadphase tree, filling allHits with the body indices of every overlap. Returns true if there was at least overlap.

    Declaration
    public bool OverlapAabb(OverlapAabbInput input, ref NativeList<int> allHits)
    Parameters
    Type Name Description
    OverlapAabbInput input

    The input.

    NativeList<Int32> allHits

    [in,out] all hits.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.OverlapBox(float3, quaternion, float3, ref NativeList<DistanceHit>, CollisionFilter, QueryInteraction)

    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
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    ICollidable.OverlapBoxCustom<T>(float3, quaternion, float3, ref T, CollisionFilter, QueryInteraction)

    OverlapCapsule(float3, float3, Single, 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.

    Single 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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.OverlapCapsule(float3, float3, Single, ref NativeList<DistanceHit>, CollisionFilter, QueryInteraction)

    OverlapCapsuleCustom<T>(float3, float3, Single, 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.

    Single radius

    The radius.

    T collector

    [in,out] The collector.

    CollisionFilter filter

    Specifies the filter.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    ICollidable.OverlapCapsuleCustom<T>(float3, float3, Single, ref T, CollisionFilter, QueryInteraction)

    OverlapSphere(float3, Single, 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.

    Single 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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.OverlapSphere(float3, Single, ref NativeList<DistanceHit>, CollisionFilter, QueryInteraction)

    OverlapSphereCustom<T>(float3, Single, 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.

    Single radius

    The radius.

    T collector

    [in,out] The collector.

    CollisionFilter filter

    Specifies the filter.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    ICollidable.OverlapSphereCustom<T>(float3, Single, ref T, CollisionFilter, QueryInteraction)

    Reset(Int32, Int32)

    Resets this object.

    Declaration
    public void Reset(int numStaticBodies, int numDynamicBodies)
    Parameters
    Type Name Description
    Int32 numStaticBodies

    Number of static bodies.

    Int32 numDynamicBodies

    Number of dynamic bodies.

    ScheduleBuildBroadphaseJobs(ref PhysicsWorld, Single, float3, NativeReference<Int32>.ReadOnly, JobHandle, Boolean)

    Schedule a set of jobs to build the broadphase based on the given world.

    Declaration
    public JobHandle ScheduleBuildBroadphaseJobs(ref PhysicsWorld world, float timeStep, float3 gravity, NativeReference<int>.ReadOnly buildStaticTree, JobHandle inputDeps, bool multiThreaded = true)
    Parameters
    Type Name Description
    PhysicsWorld world

    [in,out] The world.

    Single timeStep

    The time step.

    float3 gravity

    The gravity.

    NativeReference.ReadOnly<> buildStaticTree

    The build static tree.

    JobHandle inputDeps

    The input deps.

    Boolean multiThreaded

    (Optional) True if multi threaded.

    Returns
    Type Description
    JobHandle

    A JobHandle.

    ScheduleFindOverlapsJobs(out NativeStream, out NativeStream, JobHandle, Boolean)

    Schedule a set of jobs which will write all overlapping body pairs to the given steam, where at least one of the bodies is dynamic. The results are unsorted.

    Declaration
    public SimulationJobHandles ScheduleFindOverlapsJobs(out NativeStream dynamicVsDynamicPairsStream, out NativeStream staticVsDynamicPairsStream, JobHandle inputDeps, bool multiThreaded = true)
    Parameters
    Type Name Description
    NativeStream dynamicVsDynamicPairsStream

    [out] The dynamic vs dynamic pairs stream.

    NativeStream staticVsDynamicPairsStream

    [out] The static vs dynamic pairs stream.

    JobHandle inputDeps

    The input deps.

    Boolean multiThreaded

    (Optional) True if multi threaded.

    Returns
    Type Description
    SimulationJobHandles

    The SimulationJobHandles.

    ScheduleUpdateDynamicTree(ref PhysicsWorld, Single, float3, JobHandle, Boolean)

    Schedule a set of jobs to synchronize the collision world with the dynamics world.

    Declaration
    public JobHandle ScheduleUpdateDynamicTree(ref PhysicsWorld world, float timeStep, float3 gravity, JobHandle inputDeps, bool multiThreaded = true)
    Parameters
    Type Name Description
    PhysicsWorld world

    [in,out] The world.

    Single timeStep

    The time step.

    float3 gravity

    The gravity.

    JobHandle inputDeps

    The input deps.

    Boolean multiThreaded

    (Optional) True if multi threaded.

    Returns
    Type Description
    JobHandle

    A JobHandle.

    SphereCast(float3, Single, float3, Single, 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.

    Single radius

    The radius.

    float3 direction

    The direction.

    Single 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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.SphereCast(float3, Single, float3, Single, out ColliderCastHit, CollisionFilter, QueryInteraction)

    SphereCast(float3, Single, float3, Single, 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.

    Single radius

    The radius.

    float3 direction

    The direction.

    Single maxDistance

    The maximum distance.

    CollisionFilter filter

    Specifies the filter.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.SphereCast(float3, Single, float3, Single, CollisionFilter, QueryInteraction)

    SphereCastAll(float3, Single, float3, Single, 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.

    Single radius

    The radius.

    float3 direction

    The direction.

    Single 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
    Boolean

    True if there is a hit, false otherwise.

    Implements
    ICollidable.SphereCastAll(float3, Single, float3, Single, ref NativeList<ColliderCastHit>, CollisionFilter, QueryInteraction)

    SphereCastCustom<T>(float3, Single, float3, Single, 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.

    Single radius

    The radius.

    float3 direction

    The direction.

    Single maxDistance

    The maximum distance.

    T collector

    [in,out] The collector.

    CollisionFilter filter

    Specifies the filter.

    QueryInteraction queryInteraction

    (Optional) The query interaction.

    Returns
    Type Description
    Boolean

    True if there is a hit, false otherwise.

    Type Parameters
    Name Description
    T

    Generic type parameter.

    Implements
    ICollidable.SphereCastCustom<T>(float3, Single, float3, Single, ref T, CollisionFilter, QueryInteraction)

    UpdateBodyIndexMap()

    Updates the body index map.

    Declaration
    public void UpdateBodyIndexMap()

    UpdateDynamicTree(ref PhysicsWorld, Single, float3)

    Synchronize the collision world with the dynamics world.

    Declaration
    public void UpdateDynamicTree(ref PhysicsWorld world, float timeStep, float3 gravity)
    Parameters
    Type Name Description
    PhysicsWorld world

    [in,out] The world.

    Single timeStep

    The time step.

    float3 gravity

    The gravity.

    In This Article
    • Constructors
      • CollisionWorld(Int32, Int32)
    • Properties
      • Bodies
      • CollisionTolerance
      • DynamicBodies
      • NumBodies
      • NumDynamicBodies
      • NumStaticBodies
      • StaticBodies
    • Methods
      • BoxCast(float3, quaternion, float3, float3, Single, out ColliderCastHit, CollisionFilter, QueryInteraction)
      • BoxCast(float3, quaternion, float3, float3, Single, CollisionFilter, QueryInteraction)
      • BoxCastAll(float3, quaternion, float3, float3, Single, ref NativeList<ColliderCastHit>, CollisionFilter, QueryInteraction)
      • BoxCastCustom<T>(float3, quaternion, float3, float3, Single, ref T, CollisionFilter, QueryInteraction)
      • BuildBroadphase(ref PhysicsWorld, Single, float3, Boolean)
      • CalculateAabb()
      • CalculateDistance(in ColliderAspect, Single, ref NativeList<DistanceHit>, QueryInteraction)
      • CalculateDistance(in ColliderAspect, Single, out DistanceHit, QueryInteraction)
      • CalculateDistance(in ColliderAspect, Single, QueryInteraction)
      • CalculateDistance(ColliderDistanceInput)
      • CalculateDistance(ColliderDistanceInput, ref NativeList<DistanceHit>)
      • CalculateDistance(ColliderDistanceInput, out DistanceHit)
      • CalculateDistance(PointDistanceInput)
      • CalculateDistance(PointDistanceInput, ref NativeList<DistanceHit>)
      • CalculateDistance(PointDistanceInput, out DistanceHit)
      • CalculateDistance<T>(in ColliderAspect, Single, ref T, QueryInteraction)
      • CalculateDistance<T>(ColliderDistanceInput, ref T)
      • CalculateDistance<T>(PointDistanceInput, ref T)
      • CapsuleCast(float3, float3, Single, float3, Single, out ColliderCastHit, CollisionFilter, QueryInteraction)
      • CapsuleCast(float3, float3, Single, float3, Single, CollisionFilter, QueryInteraction)
      • CapsuleCastAll(float3, float3, Single, float3, Single, ref NativeList<ColliderCastHit>, CollisionFilter, QueryInteraction)
      • CapsuleCastCustom<T>(float3, float3, Single, float3, Single, ref T, CollisionFilter, QueryInteraction)
      • CastCollider(in ColliderAspect, float3, Single, ref NativeList<ColliderCastHit>, QueryInteraction)
      • CastCollider(in ColliderAspect, float3, Single, out ColliderCastHit, QueryInteraction)
      • CastCollider(in ColliderAspect, float3, Single, QueryInteraction)
      • CastCollider(ColliderCastInput)
      • CastCollider(ColliderCastInput, ref NativeList<ColliderCastHit>)
      • CastCollider(ColliderCastInput, out ColliderCastHit)
      • CastCollider<T>(in ColliderAspect, float3, Single, ref T, QueryInteraction)
      • CastCollider<T>(ColliderCastInput, ref T)
      • CastRay(RaycastInput)
      • CastRay(RaycastInput, ref NativeList<RaycastHit>)
      • CastRay(RaycastInput, out RaycastHit)
      • CastRay<T>(RaycastInput, ref T)
      • CheckBox(float3, quaternion, float3, CollisionFilter, QueryInteraction)
      • CheckCapsule(float3, float3, Single, CollisionFilter, QueryInteraction)
      • CheckSphere(float3, Single, CollisionFilter, QueryInteraction)
      • Clone()
      • Dispose()
      • FindOverlaps(ref NativeStream.Writer, ref NativeStream.Writer)
      • GetRigidBodyIndex(Entity)
      • OverlapAabb(OverlapAabbInput, ref NativeList<Int32>)
      • OverlapBox(float3, quaternion, float3, ref NativeList<DistanceHit>, CollisionFilter, QueryInteraction)
      • OverlapBoxCustom<T>(float3, quaternion, float3, ref T, CollisionFilter, QueryInteraction)
      • OverlapCapsule(float3, float3, Single, ref NativeList<DistanceHit>, CollisionFilter, QueryInteraction)
      • OverlapCapsuleCustom<T>(float3, float3, Single, ref T, CollisionFilter, QueryInteraction)
      • OverlapSphere(float3, Single, ref NativeList<DistanceHit>, CollisionFilter, QueryInteraction)
      • OverlapSphereCustom<T>(float3, Single, ref T, CollisionFilter, QueryInteraction)
      • Reset(Int32, Int32)
      • ScheduleBuildBroadphaseJobs(ref PhysicsWorld, Single, float3, NativeReference<Int32>.ReadOnly, JobHandle, Boolean)
      • ScheduleFindOverlapsJobs(out NativeStream, out NativeStream, JobHandle, Boolean)
      • ScheduleUpdateDynamicTree(ref PhysicsWorld, Single, float3, JobHandle, Boolean)
      • SphereCast(float3, Single, float3, Single, out ColliderCastHit, CollisionFilter, QueryInteraction)
      • SphereCast(float3, Single, float3, Single, CollisionFilter, QueryInteraction)
      • SphereCastAll(float3, Single, float3, Single, ref NativeList<ColliderCastHit>, CollisionFilter, QueryInteraction)
      • SphereCastCustom<T>(float3, Single, float3, Single, ref T, CollisionFilter, QueryInteraction)
      • UpdateBodyIndexMap()
      • UpdateDynamicTree(ref PhysicsWorld, Single, float3)
    Back to top
    Copyright © 2023 Unity Technologies — Terms of use
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX on 18 October 2023