Direct access object to a space in the PhysicsServer.
    public abstract 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 Godot.Collections.Array 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 returned array will be [0, 0] under Bullet, and empty under GodotPhysics.

    public Godot.Collections.Array 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 GetRestInfo(PhysicsShapeQueryParameters shape)

Checks the intersections of a shape, given through a PhysicsShapeQueryParameters object, against the space. If it collides with more than one 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 is returned instead.

    public Dictionary IntersectRay(Vector3 from, Vector3 to, Godot.Collections.Array exclude = null, int collisionMask = int.MaxValue, bool collideWithBodies = true, bool collideWithAreas = false)

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 is returned instead.

Additionally, the method can take an exclude array of objects or RIDs that are to be excluded from collisions, a collisionMask bitmask representing the physics layers to check in, or booleans to determine if the ray should collide with PhysicsBodys or Areas, respectively.

    public Godot.Collections.Array 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 maxResults parameter, to reduce the processing time.

Tags: