2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								<?xml version="1.0" encoding="UTF-8" ?>  
						 
					
						
							
								
									
										
										
										
											2020-01-26 16:01:49 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								<class  name= "RayCast"  inherits= "Spatial"  version= "3.2" >  
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									<brief_description > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										Query the closest object intersecting a ray.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</brief_description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									<description > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										A RayCast represents a line from its origin to its destination position, [code]cast_to[/code]. It is used to query the 3D space in order to find the closest object along the path of the ray.
							 
						 
					
						
							
								
									
										
										
										
											2019-03-13 17:08:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RayCast can ignore some objects by adding them to the exception list via [code]add_exception[/code] or by setting proper filtering with collision layers and masks.
							 
						 
					
						
							
								
									
										
										
										
											2018-08-30 16:28:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RayCast can be configured to report collisions with [Area]s ([member collide_with_areas]) and/or [PhysicsBody]s ([member collide_with_bodies]).
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										Only enabled raycasts will be able to query the space and report collisions.
							 
						 
					
						
							
								
									
										
										
										
											2019-03-13 17:08:14 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										RayCast calculates intersection every physics frame (see [Node]), and the result is cached so it can be used later until the next frame. If multiple queries are required between physics frames (or during the same frame), use [method force_raycast_update] after adjusting the raycast.
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									<tutorials > 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-07 22:47:50 +03:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<link > https://docs.godotengine.org/en/latest/tutorials/physics/ray-casting.html</link> 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									</tutorials> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									<methods > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<method  name= "add_exception" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "void" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<argument  index= "0"  name= "node"  type= "Object" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</argument> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Adds a collision exception so the ray does not report collisions with the specified node.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<method  name= "add_exception_rid" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "void" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<argument  index= "0"  name= "rid"  type= "RID" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</argument> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Adds a collision exception so the ray does not report collisions with the specified [RID].
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<method  name= "clear_exceptions" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "void" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Removes all collision exceptions for this ray.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<method  name= "force_raycast_update" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "void" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Updates the collision information for the ray.
							 
						 
					
						
							
								
									
										
										
										
											2019-06-22 01:04:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												Use this method to update the collision information immediately instead of waiting for the next [code]_physics_process[/code] call, for example if the ray or its parent has changed state.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												[b]Note:[/b] [code]enabled == true[/code] is not required for this to work.
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<method  name= "get_collider"  qualifiers= "const" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "Object" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-23 19:15:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												Returns the first object that the ray intersects, or [code]null[/code] if no object is intersecting the ray (i.e. [method is_colliding] returns [code]false[/code]).
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<method  name= "get_collider_shape"  qualifiers= "const" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "int" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
									
										
										
										
											2018-08-30 16:28:48 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												Returns the shape ID of the first object that the ray intersects, or [code]0[/code] if no object is intersecting the ray (i.e. [method is_colliding] returns [code]false[/code]).
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-24 19:22:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<method  name= "get_collision_mask_bit"  qualifiers= "const" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "bool" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<argument  index= "0"  name= "bit"  type= "int" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</argument> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-22 01:04:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												Returns [code]true[/code] if the bit index passed is turned on.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												[b]Note:[/b] Bit indices range from 0-19.
							 
						 
					
						
							
								
									
										
										
										
											2017-10-24 19:22:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										<method  name= "get_collision_normal"  qualifiers= "const" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "Vector3" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Returns the normal of the intersecting object's shape at the collision point.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<method  name= "get_collision_point"  qualifiers= "const" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "Vector3" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-22 01:04:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												Returns the collision point at which the ray intersects the closest object.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												[b]Note:[/b] This point is in the [b]global[/b] coordinate system.
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<method  name= "is_colliding"  qualifiers= "const" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "bool" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
									
										
										
										
											2019-05-23 19:15:43 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												Returns whether any object is intersecting with the ray's vector (considering the vector length).
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<method  name= "remove_exception" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "void" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<argument  index= "0"  name= "node"  type= "Object" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</argument> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Removes a collision exception so the ray does report collisions with the specified node.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										<method  name= "remove_exception_rid" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "void" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<argument  index= "0"  name= "rid"  type= "RID" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</argument> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												Removes a collision exception so the ray does report collisions with the specified [RID].
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-24 19:22:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<method  name= "set_collision_mask_bit" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<return  type= "void" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</return> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<argument  index= "0"  name= "bit"  type= "int" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</argument> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<argument  index= "1"  name= "value"  type= "bool" > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											</argument> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											<description > 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-22 01:04:47 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
												Sets the bit index passed to the [code]value[/code] passed.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
												[b]Note:[/b] Bit indexes range from 0-19.
							 
						 
					
						
							
								
									
										
										
										
											2017-10-24 19:22:37 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											</description> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</method> 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									</methods> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									<members > 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-29 12:38:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<member  name= "cast_to"  type= "Vector3"  setter= "set_cast_to"  getter= "get_cast_to"  default= "Vector3( 0, -1, 0 )" > 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
											The ray's destination point, relative to the RayCast's [code]position[/code].
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
										</member> 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-29 12:38:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<member  name= "collide_with_areas"  type= "bool"  setter= "set_collide_with_areas"  getter= "is_collide_with_areas_enabled"  default= "false" > 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-29 15:24:23 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											If [code]true[/code], collision with [Area]s will be reported.
							 
						 
					
						
							
								
									
										
										
										
											2018-08-29 22:25:11 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										</member> 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-29 12:38:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<member  name= "collide_with_bodies"  type= "bool"  setter= "set_collide_with_bodies"  getter= "is_collide_with_bodies_enabled"  default= "true" > 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-29 15:24:23 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											If [code]true[/code], collision with [PhysicsBody]s will be reported.
							 
						 
					
						
							
								
									
										
										
										
											2018-08-29 22:25:11 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										</member> 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-29 12:38:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<member  name= "collision_mask"  type= "int"  setter= "set_collision_mask"  getter= "get_collision_mask"  default= "1" > 
							 
						 
					
						
							
								
									
										
										
										
											2017-10-21 22:17:26 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											The ray's collision mask. Only objects in at least one collision layer enabled in the mask will be detected.
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										</member> 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-29 12:38:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<member  name= "enabled"  type= "bool"  setter= "set_enabled"  getter= "is_enabled"  default= "false" > 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-29 15:24:23 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											If [code]true[/code], collisions will be reported.
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
										</member> 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-29 12:38:01 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										<member  name= "exclude_parent"  type= "bool"  setter= "set_exclude_parent_body"  getter= "get_exclude_parent_body"  default= "true" > 
							 
						 
					
						
							
								
									
										
										
										
											2019-06-29 15:24:23 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											If [code]true[/code], collisions will be ignored for this RayCast's immediate parent.
							 
						 
					
						
							
								
									
										
										
										
											2017-12-07 08:23:08 +01:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
										</member> 
							 
						 
					
						
							
								
									
										
										
										
											2017-09-12 17:42:36 -03:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
									</members> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									<constants > 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									</constants> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								</class>