forked from sascha/godot
Merge pull request #53280 from nekomatata/test-body-motion-parameters
commit
5b270278c8
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="PhysicsTestMotionParameters2D" inherits="RefCounted" version="4.0">
|
||||
<brief_description>
|
||||
Parameters to be sent to a 2D body motion test.
|
||||
</brief_description>
|
||||
<description>
|
||||
This class contains parameters used in [method PhysicsServer2D.body_test_motion].
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
<members>
|
||||
<member name="collide_separation_ray" type="bool" setter="set_collide_separation_ray_enabled" getter="is_collide_separation_ray_enabled" default="false">
|
||||
If set to [code]true[/code], shapes of type [constant PhysicsServer2D.SHAPE_SEPARATION_RAY] are used to detect collisions and can stop the motion. Can be useful when snapping to the ground.
|
||||
If set to [code]false[/code], shapes of type [constant PhysicsServer2D.SHAPE_SEPARATION_RAY] are only used for separation when overlapping with other bodies. That's the main use for separation ray shapes.
|
||||
</member>
|
||||
<member name="exclude_bodies" type="Array" setter="set_exclude_bodies" getter="get_exclude_bodies" default="[]">
|
||||
Optional array of body [RID] to exclude from collision.
|
||||
</member>
|
||||
<member name="from" type="Transform2D" setter="set_from" getter="get_from" default="Transform2D(1, 0, 0, 1, 0, 0)">
|
||||
Transform in global space where the motion should start. Usually set to [member Node2D.global_transform] for the current body's transform.
|
||||
</member>
|
||||
<member name="margin" type="float" setter="set_margin" getter="get_margin" default="0.08">
|
||||
Increases the size of the shapes involved in the collision detection.
|
||||
</member>
|
||||
<member name="motion" type="Vector2" setter="set_motion" getter="get_motion" default="Vector2(0, 0)">
|
||||
Motion vector to define the length and direction of the motion to test.
|
||||
</member>
|
||||
</members>
|
||||
</class>
|
||||
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="PhysicsTestMotionParameters3D" inherits="RefCounted" version="4.0">
|
||||
<brief_description>
|
||||
Parameters to be sent to a 3D body motion test.
|
||||
</brief_description>
|
||||
<description>
|
||||
This class contains parameters used in [method PhysicsServer3D.body_test_motion].
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
<members>
|
||||
<member name="collide_separation_ray" type="bool" setter="set_collide_separation_ray_enabled" getter="is_collide_separation_ray_enabled" default="false">
|
||||
If set to [code]true[/code], shapes of type [constant PhysicsServer3D.SHAPE_SEPARATION_RAY] are used to detect collisions and can stop the motion. Can be useful when snapping to the ground.
|
||||
If set to [code]false[/code], shapes of type [constant PhysicsServer3D.SHAPE_SEPARATION_RAY] are only used for separation when overlapping with other bodies. That's the main use for separation ray shapes.
|
||||
</member>
|
||||
<member name="exclude_bodies" type="Array" setter="set_exclude_bodies" getter="get_exclude_bodies" default="[]">
|
||||
Optional array of body [RID] to exclude from collision.
|
||||
</member>
|
||||
<member name="from" type="Transform3D" setter="set_from" getter="get_from" default="Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)">
|
||||
Transform in global space where the motion should start. Usually set to [member Node3D.global_transform] for the current body's transform.
|
||||
</member>
|
||||
<member name="margin" type="float" setter="set_margin" getter="get_margin" default="0.001">
|
||||
Increases the size of the shapes involved in the collision detection.
|
||||
</member>
|
||||
<member name="max_collisions" type="int" setter="set_max_collisions" getter="get_max_collisions" default="1">
|
||||
Maximum number of returned collisions, between [code]1[/code] and [code]32[/code]. Always returns the deepest detected collisions.
|
||||
</member>
|
||||
<member name="motion" type="Vector3" setter="set_motion" getter="get_motion" default="Vector3(0, 0, 0)">
|
||||
Motion vector to define the length and direction of the motion to test.
|
||||
</member>
|
||||
</members>
|
||||
</class>
|
||||
@ -1,35 +1,91 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<class name="PhysicsTestMotionResult2D" inherits="RefCounted" version="4.0">
|
||||
<brief_description>
|
||||
Result from a 2D body motion test.
|
||||
</brief_description>
|
||||
<description>
|
||||
This class contains the motion and collision result from [method PhysicsServer2D.body_test_motion].
|
||||
</description>
|
||||
<tutorials>
|
||||
</tutorials>
|
||||
<members>
|
||||
<member name="collider" type="Object" setter="" getter="get_collider">
|
||||
</member>
|
||||
<member name="collider_id" type="int" setter="" getter="get_collider_id" default="0">
|
||||
</member>
|
||||
<member name="collider_rid" type="RID" setter="" getter="get_collider_rid">
|
||||
</member>
|
||||
<member name="collider_shape" type="int" setter="" getter="get_collider_shape" default="0">
|
||||
</member>
|
||||
<member name="collider_velocity" type="Vector2" setter="" getter="get_collider_velocity" default="Vector2(0, 0)">
|
||||
</member>
|
||||
<member name="collision_depth" type="float" setter="" getter="get_collision_depth" default="0.0">
|
||||
</member>
|
||||
<member name="collision_normal" type="Vector2" setter="" getter="get_collision_normal" default="Vector2(0, 0)">
|
||||
</member>
|
||||
<member name="collision_point" type="Vector2" setter="" getter="get_collision_point" default="Vector2(0, 0)">
|
||||
</member>
|
||||
<member name="collision_safe_fraction" type="float" setter="" getter="get_collision_safe_fraction" default="0.0">
|
||||
</member>
|
||||
<member name="collision_unsafe_fraction" type="float" setter="" getter="get_collision_unsafe_fraction" default="0.0">
|
||||
</member>
|
||||
<member name="remainder" type="Vector2" setter="" getter="get_remainder" default="Vector2(0, 0)">
|
||||
</member>
|
||||
<member name="travel" type="Vector2" setter="" getter="get_travel" default="Vector2(0, 0)">
|
||||
</member>
|
||||
</members>
|
||||
<methods>
|
||||
<method name="get_collider" qualifiers="const">
|
||||
<return type="Object" />
|
||||
<description>
|
||||
Returns the colliding body's attached [Object], if a collision occured.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_collider_id" qualifiers="const">
|
||||
<return type="int" />
|
||||
<description>
|
||||
Returns the unique instance ID of the colliding body's attached [Object], if a collision occured. See [method Object.get_instance_id].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_collider_rid" qualifiers="const">
|
||||
<return type="RID" />
|
||||
<description>
|
||||
Returns the colliding body's [RID] used by the [PhysicsServer2D], if a collision occured.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_collider_shape" qualifiers="const">
|
||||
<return type="int" />
|
||||
<description>
|
||||
Returns the colliding body's shape index, if a collision occured. See [CollisionObject2D].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_collider_velocity" qualifiers="const">
|
||||
<return type="Vector2" />
|
||||
<description>
|
||||
Returns the colliding body's velocity, if a collision occured.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_collision_depth" qualifiers="const">
|
||||
<return type="float" />
|
||||
<description>
|
||||
Returns the length of overlap along the collision normal, if a collision occured.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_collision_local_shape" qualifiers="const">
|
||||
<return type="int" />
|
||||
<description>
|
||||
Returns the moving object's colliding shape, if a collision occured.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_collision_normal" qualifiers="const">
|
||||
<return type="Vector2" />
|
||||
<description>
|
||||
Returns the colliding body's shape's normal at the point of collision, if a collision occured.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_collision_point" qualifiers="const">
|
||||
<return type="Vector2" />
|
||||
<description>
|
||||
Returns the point of collision in global coordinates, if a collision occured.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_collision_safe_fraction" qualifiers="const">
|
||||
<return type="float" />
|
||||
<description>
|
||||
Returns the maximum fraction of the motion that can occur without a collision, between [code]0[/code] and [code]1[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_collision_unsafe_fraction" qualifiers="const">
|
||||
<return type="float" />
|
||||
<description>
|
||||
Returns the minimum fraction of the motion needed to collide, if a collision occured, between [code]0[/code] and [code]1[/code].
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_remainder" qualifiers="const">
|
||||
<return type="Vector2" />
|
||||
<description>
|
||||
Returns the moving object's remaining movement vector.
|
||||
</description>
|
||||
</method>
|
||||
<method name="get_travel" qualifiers="const">
|
||||
<return type="Vector2" />
|
||||
<description>
|
||||
Returns the moving object's travel before collision.
|
||||
</description>
|
||||
</method>
|
||||
</methods>
|
||||
</class>
|
||||
|
||||
Loading…
Reference in New Issue