mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-31 13:41:03 +00:00 
			
		
		
		
	 cc3b69cf7b
			
		
	
	
		cc3b69cf7b
		
			
		
	
	
	
	
		
			
			See https://github.com/godotengine/godot-docs/pull/3863.
(cherry picked from commit c73c327bab)
		
	
			
		
			
				
	
	
		
			68 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
	
		
			3.4 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="UTF-8" ?>
 | |
| <class name="SpringArm" inherits="Spatial" version="3.2">
 | |
| 	<brief_description>
 | |
| 		A helper node, mostly used in 3rd person cameras.
 | |
| 	</brief_description>
 | |
| 	<description>
 | |
| 		The SpringArm node is a node that casts a ray (or collision shape) along its z axis and moves all its direct children to the collision point, minus a margin.
 | |
| 		The most common use case for this is to make a 3rd person camera that reacts to collisions in the environment.
 | |
| 		The SpringArm will either cast a ray, or if a shape is given, it will cast the shape in the direction of its z axis.
 | |
| 		If you use the SpringArm as a camera controller for your player, you might need to exclude the player's collider from the SpringArm's collision check.
 | |
| 	</description>
 | |
| 	<tutorials>
 | |
| 	</tutorials>
 | |
| 	<methods>
 | |
| 		<method name="add_excluded_object">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<argument index="0" name="RID" type="RID">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Adds the [PhysicsBody] object with the given [RID] to the list of [PhysicsBody] objects excluded from the collision check.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="clear_excluded_objects">
 | |
| 			<return type="void">
 | |
| 			</return>
 | |
| 			<description>
 | |
| 				Clears the list of [PhysicsBody] objects excluded from the collision check.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_hit_length">
 | |
| 			<return type="float">
 | |
| 			</return>
 | |
| 			<description>
 | |
| 				Returns the spring arm's current length.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="remove_excluded_object">
 | |
| 			<return type="bool">
 | |
| 			</return>
 | |
| 			<argument index="0" name="RID" type="RID">
 | |
| 			</argument>
 | |
| 			<description>
 | |
| 				Removes the given [RID] from the list of [PhysicsBody] objects excluded from the collision check.
 | |
| 			</description>
 | |
| 		</method>
 | |
| 	</methods>
 | |
| 	<members>
 | |
| 		<member name="collision_mask" type="int" setter="set_collision_mask" getter="get_collision_mask" default="1">
 | |
| 			The layers against which the collision check shall be done. 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.
 | |
| 		</member>
 | |
| 		<member name="margin" type="float" setter="set_margin" getter="get_margin" default="0.01">
 | |
| 			When the collision check is made, a candidate length for the SpringArm is given.
 | |
| 			The margin is then subtracted to this length and the translation is applied to the child objects of the SpringArm.
 | |
| 			This margin is useful for when the SpringArm has a [Camera] as a child node: without the margin, the [Camera] would be placed on the exact point of collision, while with the margin the [Camera] would be placed close to the point of collision.
 | |
| 		</member>
 | |
| 		<member name="shape" type="Shape" setter="set_shape" getter="get_shape">
 | |
| 			The [Shape] to use for the SpringArm.
 | |
| 			When the shape is set, the SpringArm will cast the [Shape] on its z axis instead of performing a ray cast.
 | |
| 		</member>
 | |
| 		<member name="spring_length" type="float" setter="set_length" getter="get_length" default="1.0">
 | |
| 			The maximum extent of the SpringArm. This is used as a length for both the ray and the shape cast used internally to calculate the desired position of the SpringArm's child nodes.
 | |
| 			To know more about how to perform a shape cast or a ray cast, please consult the [PhysicsDirectSpaceState] documentation.
 | |
| 		</member>
 | |
| 	</members>
 | |
| 	<constants>
 | |
| 	</constants>
 | |
| </class>
 |