StaticBody

Inherits: PhysicsBody < CollisionObject < Spatial < Node < Object

Physics body for 3D physics which is static or moves only by script. Useful for floor and walls.

Description

Static body for 3D physics.

A static body is a simple body that doesn't move under physics simulation, i.e. it can't be moved by external forces or contacts but its transformation can still be updated manually by the user. It is ideal for implementing objects in the environment, such as walls or platforms. In contrast to RigidBody, it doesn't consume any CPU resources as long as they don't move.

They have extra functionalities to move and affect other bodies:

Static transform change: Static bodies can be moved by animation or script. In this case, they are just teleported and don't affect other bodies on their path.

Constant velocity: When constant_linear_velocity or constant_angular_velocity is set, static bodies don't move themselves but affect touching bodies as if they were moving. This is useful for simulating conveyor belts or conveyor wheels.

Warning: With a non-uniform scale this node will probably not function as expected. Please make sure to keep its scale uniform (i.e. the same on all axes), and change the size(s) of its collision shape(s) instead.

Tutorials

Properties

float

bounce

Vector3

constant_angular_velocity

Vector3( 0, 0, 0 )

Vector3

constant_linear_velocity

Vector3( 0, 0, 0 )

float

friction

PhysicsMaterial

physics_material_override


Property Descriptions

float bounce

  • void set_bounce ( float value )

  • float get_bounce ( )

The body's bounciness. Values range from 0 (no bounce) to 1 (full bounciness).

Deprecated, use PhysicsMaterial.bounce instead via physics_material_override.


Vector3 constant_angular_velocity = Vector3( 0, 0, 0 )

  • void set_constant_angular_velocity ( Vector3 value )

  • Vector3 get_constant_angular_velocity ( )

The body's constant angular velocity. This does not rotate the body, but affects other bodies that touch it, as if it was in a state of rotation.


Vector3 constant_linear_velocity = Vector3( 0, 0, 0 )

  • void set_constant_linear_velocity ( Vector3 value )

  • Vector3 get_constant_linear_velocity ( )

The body's constant linear velocity. This does not move the body, but affects other bodies that touch it, as if it was in a state of movement.


float friction

  • void set_friction ( float value )

  • float get_friction ( )

The body's friction, from 0 (frictionless) to 1 (full friction).

Deprecated, use PhysicsMaterial.friction instead via physics_material_override.


PhysicsMaterial physics_material_override

The physics material override for the body.

If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.