Class PhysicsDirectSpaceState3D
- Namespace
- Godot
- Assembly
- GodotSharp.dll
Provides direct access to a physics space in the PhysicsServer3D. It's used mainly to do queries against objects and areas residing in a given space.
public class PhysicsDirectSpaceState3D : GodotObject, IDisposable
- Inheritance
-
PhysicsDirectSpaceState3D
- Implements
- Derived
- Inherited Members
Methods
CastMotion(PhysicsShapeQueryParameters3D)
Checks how far a Shape3D can move without colliding. All the parameters for the query, including the shape, are supplied through a PhysicsShapeQueryParameters3D object.
Returns an array with the safe and unsafe proportions (between 0 and 1) of the motion. The safe proportion is the maximum fraction of the motion that can be made without a collision. The unsafe proportion is the minimum fraction of the distance that must be moved for a collision. If no collision is detected a result of [1.0, 1.0]
will be returned.
Note: Any Shape3Ds that the shape is already colliding with e.g. inside of, will be ignored. Use CollideShape(PhysicsShapeQueryParameters3D, int) to determine the Shape3Ds that the shape is already colliding with.
public float[] CastMotion(PhysicsShapeQueryParameters3D parameters)
Parameters
parameters
PhysicsShapeQueryParameters3D
Returns
- float[]
CollideShape(PhysicsShapeQueryParameters3D, int)
Checks the intersections of a shape, given through a PhysicsShapeQueryParameters3D object, against the space. The resulting array contains a list of points where the shape intersects another. Like with IntersectShape(PhysicsShapeQueryParameters3D, int), the number of returned results can be limited to save processing time.
Returned points are a list of pairs of contact points. For each pair the first one is in the shape passed in PhysicsShapeQueryParameters3D object, second one is in the collided shape from the physics space.
Note: This method does not take into account the motion
property of the object.
public Array<Vector3> CollideShape(PhysicsShapeQueryParameters3D parameters, int maxResults = 32)
Parameters
parameters
PhysicsShapeQueryParameters3DmaxResults
int
Returns
GetRestInfo(PhysicsShapeQueryParameters3D)
Checks the intersections of a shape, given through a PhysicsShapeQueryParameters3D 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 Area3D, 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.
Note: This method does not take into account the motion
property of the object.
public Dictionary GetRestInfo(PhysicsShapeQueryParameters3D parameters)
Parameters
parameters
PhysicsShapeQueryParameters3D
Returns
HasGodotClassMethod(in godot_string_name)
Check if the type contains a method with the given name. This method is used by Godot to check if a method exists before invoking it. Do not call or override this method.
protected override bool HasGodotClassMethod(in godot_string_name method)
Parameters
method
godot_string_nameName of the method to check for.
Returns
HasGodotClassSignal(in godot_string_name)
Check if the type contains a signal with the given name. This method is used by Godot to check if a signal exists before raising it. Do not call or override this method.
protected override bool HasGodotClassSignal(in godot_string_name signal)
Parameters
signal
godot_string_nameName of the signal to check for.
Returns
IntersectPoint(PhysicsPointQueryParameters3D, int)
Checks whether a point is inside any solid shape. Position and other parameters are defined through PhysicsPointQueryParameters3D. The shapes the point is inside of 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.
public Array<Dictionary> IntersectPoint(PhysicsPointQueryParameters3D parameters, int maxResults = 32)
Parameters
parameters
PhysicsPointQueryParameters3DmaxResults
int
Returns
IntersectRay(PhysicsRayQueryParameters3D)
Intersects a ray in a given space. Ray position and other parameters are defined through PhysicsRayQueryParameters3D. 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, or Vector3(0, 0, 0)
if the ray starts inside the shape and HitFromInside is true
.
position
: The intersection point.
face_index
: The face index at the intersection point.
Note: Returns a valid number only if the intersected shape is a ConcavePolygonShape3D. Otherwise, -1
is returned.
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.
public Dictionary IntersectRay(PhysicsRayQueryParameters3D parameters)
Parameters
parameters
PhysicsRayQueryParameters3D
Returns
IntersectShape(PhysicsShapeQueryParameters3D, int)
Checks the intersections of a shape, given through a PhysicsShapeQueryParameters3D 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.
Note: This method does not take into account the motion
property of the object.
public Array<Dictionary> IntersectShape(PhysicsShapeQueryParameters3D parameters, int maxResults = 32)
Parameters
parameters
PhysicsShapeQueryParameters3DmaxResults
int
Returns
InvokeGodotClassMethod(in godot_string_name, NativeVariantPtrArgs, out godot_variant)
Invokes the method with the given name, using the given arguments. This method is used by Godot to invoke methods from the engine side. Do not call or override this method.
protected override bool InvokeGodotClassMethod(in godot_string_name method, NativeVariantPtrArgs args, out godot_variant ret)
Parameters
method
godot_string_nameName of the method to invoke.
args
NativeVariantPtrArgsArguments to use with the invoked method.
ret
godot_variantValue returned by the invoked method.