2017-09-13 04:42:36 +08:00
<?xml version="1.0" encoding="UTF-8" ?>
2021-06-05 00:03:15 +08:00
<class name= "PhysicsShapeQueryParameters3D" inherits= "RefCounted" version= "4.0" >
2017-09-13 04:42:36 +08:00
<brief_description >
2019-12-09 22:16:28 +08:00
Parameters to be sent to a 3D shape physics query.
2017-09-13 04:42:36 +08:00
</brief_description>
<description >
2021-07-03 07:48:58 +08:00
This class contains the shape and other parameters for 3D intersection/collision queries.
2017-09-13 04:42:36 +08:00
</description>
<tutorials >
</tutorials>
2018-01-12 06:38:35 +08:00
<members >
2019-06-29 18:38:01 +08:00
<member name= "collide_with_areas" type= "bool" setter= "set_collide_with_areas" getter= "is_collide_with_areas_enabled" default= "false" >
2020-03-31 00:22:57 +08:00
If [code]true[/code], the query will take [Area3D]s into account.
2018-08-30 04:25:11 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "collide_with_bodies" type= "bool" setter= "set_collide_with_bodies" getter= "is_collide_with_bodies_enabled" default= "true" >
2020-03-31 00:22:57 +08:00
If [code]true[/code], the query will take [PhysicsBody3D]s into account.
2018-08-30 04:25:11 +08:00
</member>
2021-08-31 07:29:16 +08:00
<member name= "collision_mask" type= "int" setter= "set_collision_mask" getter= "get_collision_mask" default= "4294967295" >
2021-08-12 07:01:38 +08:00
The physics layers the query will detect (as a bitmask). By default, all collision layers are detected. See [url=https://docs.godotengine.org/en/latest/tutorials/physics/physics_introduction.html#collision-layers-and-masks]Collision layers and masks[/url] in the documentation for more information.
2018-01-12 06:38:35 +08:00
</member>
2019-09-25 01:45:03 +08:00
<member name= "exclude" type= "Array" setter= "set_exclude" getter= "get_exclude" default= "[]" >
2019-12-09 22:16:28 +08:00
The list of objects or object [RID]s that will be excluded from collisions.
2018-01-12 06:38:35 +08:00
</member>
2019-06-29 18:38:01 +08:00
<member name= "margin" type= "float" setter= "set_margin" getter= "get_margin" default= "0.0" >
2019-12-09 22:16:28 +08:00
The collision margin for the shape.
2018-01-12 06:38:35 +08:00
</member>
2020-01-28 03:04:16 +08:00
<member name= "shape" type= "Resource" setter= "set_shape" getter= "get_shape" >
The [Shape3D] that will be used for collision/intersection queries. This stores the actual reference which avoids the shape to be released while being used for queries, so always prefer using this over [member shape_rid].
</member>
2018-01-12 06:38:35 +08:00
<member name= "shape_rid" type= "RID" setter= "set_shape_rid" getter= "get_shape_rid" >
2020-01-28 03:04:16 +08:00
The queried shape's [RID] that will be used for collision/intersection queries. Use this over [member shape] if you want to optimize for performance using the Servers API:
2020-11-01 01:54:17 +08:00
[codeblocks]
[gdscript]
var shape_rid = PhysicsServer3D.shape_create(PhysicsServer3D.SHAPE_SPHERE)
var radius = 2.0
PhysicsServer3D.shape_set_data(shape_rid, radius)
2020-01-28 03:04:16 +08:00
2020-11-01 01:54:17 +08:00
var params = PhysicsShapeQueryParameters3D.new()
params.shape_rid = shape_rid
2020-01-28 03:04:16 +08:00
2020-11-01 01:54:17 +08:00
# Execute physics queries here...
2020-01-28 03:04:16 +08:00
2020-11-01 01:54:17 +08:00
# Release the shape when done with physics queries.
PhysicsServer3D.free_rid(shape_rid)
[/gdscript]
[csharp]
RID shapeRid = PhysicsServer3D.ShapeCreate(PhysicsServer3D.ShapeType.Sphere);
float radius = 2.0f;
PhysicsServer3D.ShapeSetData(shapeRid, radius);
var params = new PhysicsShapeQueryParameters3D();
params.ShapeRid = shapeRid;
// Execute physics queries here...
// Release the shape when done with physics queries.
PhysicsServer3D.FreeRid(shapeRid);
[/csharp]
[/codeblocks]
2018-01-12 06:38:35 +08:00
</member>
2019-09-25 01:45:03 +08:00
<member name= "transform" type= "Transform3D" setter= "set_transform" getter= "get_transform" default= "Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)" >
2019-12-09 22:16:28 +08:00
The queried shape's transform matrix.
2018-01-12 06:38:35 +08:00
</member>
</members>
2017-09-13 04:42:36 +08:00
</class>