class_staticbody.rst 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/StaticBody.xml.
  6. .. _class_StaticBody:
  7. StaticBody
  8. ==========
  9. **Inherits:** :ref:`PhysicsBody<class_PhysicsBody>` **<** :ref:`CollisionObject<class_CollisionObject>` **<** :ref:`Spatial<class_Spatial>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. Physics body for 3D physics which is static or moves only by script. Useful for floor and walls.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. Static body for 3D physics.
  15. 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 :ref:`RigidBody<class_RigidBody>`, it doesn't consume any CPU resources as long as they don't move.
  16. They have extra functionalities to move and affect other bodies:
  17. \ *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.
  18. \ *Constant velocity:* When :ref:`constant_linear_velocity<class_StaticBody_property_constant_linear_velocity>` or :ref:`constant_angular_velocity<class_StaticBody_property_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.
  19. \ **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.
  20. .. rst-class:: classref-introduction-group
  21. Tutorials
  22. ---------
  23. - `3D Physics Tests Demo <https://godotengine.org/asset-library/asset/675>`__
  24. - `Third Person Shooter Demo <https://godotengine.org/asset-library/asset/678>`__
  25. - `3D Voxel Demo <https://godotengine.org/asset-library/asset/676>`__
  26. .. rst-class:: classref-reftable-group
  27. Properties
  28. ----------
  29. .. table::
  30. :widths: auto
  31. +-----------------------------------------------+---------------------------------------------------------------------------------------+------------------------+
  32. | :ref:`float<class_float>` | :ref:`bounce<class_StaticBody_property_bounce>` | |
  33. +-----------------------------------------------+---------------------------------------------------------------------------------------+------------------------+
  34. | :ref:`Vector3<class_Vector3>` | :ref:`constant_angular_velocity<class_StaticBody_property_constant_angular_velocity>` | ``Vector3( 0, 0, 0 )`` |
  35. +-----------------------------------------------+---------------------------------------------------------------------------------------+------------------------+
  36. | :ref:`Vector3<class_Vector3>` | :ref:`constant_linear_velocity<class_StaticBody_property_constant_linear_velocity>` | ``Vector3( 0, 0, 0 )`` |
  37. +-----------------------------------------------+---------------------------------------------------------------------------------------+------------------------+
  38. | :ref:`float<class_float>` | :ref:`friction<class_StaticBody_property_friction>` | |
  39. +-----------------------------------------------+---------------------------------------------------------------------------------------+------------------------+
  40. | :ref:`PhysicsMaterial<class_PhysicsMaterial>` | :ref:`physics_material_override<class_StaticBody_property_physics_material_override>` | |
  41. +-----------------------------------------------+---------------------------------------------------------------------------------------+------------------------+
  42. .. rst-class:: classref-section-separator
  43. ----
  44. .. rst-class:: classref-descriptions-group
  45. Property Descriptions
  46. ---------------------
  47. .. _class_StaticBody_property_bounce:
  48. .. rst-class:: classref-property
  49. :ref:`float<class_float>` **bounce**
  50. .. rst-class:: classref-property-setget
  51. - void **set_bounce** **(** :ref:`float<class_float>` value **)**
  52. - :ref:`float<class_float>` **get_bounce** **(** **)**
  53. The body's bounciness. Values range from ``0`` (no bounce) to ``1`` (full bounciness).
  54. Deprecated, use :ref:`PhysicsMaterial.bounce<class_PhysicsMaterial_property_bounce>` instead via :ref:`physics_material_override<class_StaticBody_property_physics_material_override>`.
  55. .. rst-class:: classref-item-separator
  56. ----
  57. .. _class_StaticBody_property_constant_angular_velocity:
  58. .. rst-class:: classref-property
  59. :ref:`Vector3<class_Vector3>` **constant_angular_velocity** = ``Vector3( 0, 0, 0 )``
  60. .. rst-class:: classref-property-setget
  61. - void **set_constant_angular_velocity** **(** :ref:`Vector3<class_Vector3>` value **)**
  62. - :ref:`Vector3<class_Vector3>` **get_constant_angular_velocity** **(** **)**
  63. 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.
  64. .. rst-class:: classref-item-separator
  65. ----
  66. .. _class_StaticBody_property_constant_linear_velocity:
  67. .. rst-class:: classref-property
  68. :ref:`Vector3<class_Vector3>` **constant_linear_velocity** = ``Vector3( 0, 0, 0 )``
  69. .. rst-class:: classref-property-setget
  70. - void **set_constant_linear_velocity** **(** :ref:`Vector3<class_Vector3>` value **)**
  71. - :ref:`Vector3<class_Vector3>` **get_constant_linear_velocity** **(** **)**
  72. 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.
  73. .. rst-class:: classref-item-separator
  74. ----
  75. .. _class_StaticBody_property_friction:
  76. .. rst-class:: classref-property
  77. :ref:`float<class_float>` **friction**
  78. .. rst-class:: classref-property-setget
  79. - void **set_friction** **(** :ref:`float<class_float>` value **)**
  80. - :ref:`float<class_float>` **get_friction** **(** **)**
  81. The body's friction, from 0 (frictionless) to 1 (full friction).
  82. Deprecated, use :ref:`PhysicsMaterial.friction<class_PhysicsMaterial_property_friction>` instead via :ref:`physics_material_override<class_StaticBody_property_physics_material_override>`.
  83. .. rst-class:: classref-item-separator
  84. ----
  85. .. _class_StaticBody_property_physics_material_override:
  86. .. rst-class:: classref-property
  87. :ref:`PhysicsMaterial<class_PhysicsMaterial>` **physics_material_override**
  88. .. rst-class:: classref-property-setget
  89. - void **set_physics_material_override** **(** :ref:`PhysicsMaterial<class_PhysicsMaterial>` value **)**
  90. - :ref:`PhysicsMaterial<class_PhysicsMaterial>` **get_physics_material_override** **(** **)**
  91. The physics material override for the body.
  92. If a material is assigned to this property, it will be used instead of any other physics material, such as an inherited one.
  93. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  94. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  95. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  96. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`