Direct access object to a space in the PhysicsServer.
    public class PhysicsDirectSpaceState : Object

Direct access object to a space in the PhysicsServer. It’s used mainly to do queries against objects and areas residing in a given space.

Inheritance Chain

Methods

    public object[] CastMotion(PhysicsShapeQueryParameters shape, Vector3 motion)

Checks whether the shape can travel to a point. The method will return an array with two floats between 0 and 1, both representing a fraction of motion. The first is how far the shape can move without triggering a collision, and the second is the point at which a collision will occur. If no collision is detected, the returned array will be [1, 1].

If the shape can not move, the array will be empty (dir.empty()==true).

    public object[] CollideShape(PhysicsShapeQueryParameters shape, int maxResults = 32)

Checks the intersections of a shape, given through a PhysicsShapeQueryParameters object, against the space. The resulting array contains a list of points where the shape intersects another. Like with IntersectShape(Godot.PhysicsShapeQueryParameters, int), the number of returned results can be limited to save processing time.

    public Dictionary<object, object> GetRestInfo(PhysicsShapeQueryParameters shape)

Checks the intersections of a shape, given through a PhysicsShapeQueryParameters object, against the space. If it collides with more than a shape, the nearest one is selected. The returned object is a dictionary containing the following fields:

collider_id: The colliding object’s ID.

linear_velocity: The colliding object’s velocity Vector3. If the object is an Area, the result is (0, 0, 0).

normal: The object’s surface normal at the intersection point.

point: The intersection point.

rid: The intersecting object’s RID.

shape: The shape index of the colliding shape.

If the shape did not intersect anything, then an empty dictionary (dir.empty()==true) is returned instead.

    public Dictionary<object, object> IntersectRay(Vector3 from, Vector3 to, object[] exclude = null, int collisionLayer = int.MaxValue)

Intersects a ray in a given space. The returned object is a dictionary with the following fields:

collider: The colliding object.

collider_id: The colliding object’s ID.

normal: The object’s surface normal at the intersection point.

position: The intersection point.

rid: The intersecting object’s RID.

shape: The shape index of the colliding shape.

If the ray did not intersect anything, then an empty dictionary (dir.empty()==true) is returned instead.

Additionally, the method can take an array of objects or RIDs that are to be excluded from collisions, or a bitmask representing the physics layers to check in.

    public object[] IntersectShape(PhysicsShapeQueryParameters shape, int maxResults = 32)

Checks the intersections of a shape, given through a PhysicsShapeQueryParameters object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields:

collider: The colliding object.

collider_id: The colliding object’s ID.

rid: The intersecting object’s RID.

shape: The shape index of the colliding shape.

The number of intersections can be limited with the second parameter, to reduce the processing time.

Tags: