mirror of
https://github.com/godotengine/godot.git
synced 2026-01-06 10:11:57 +03:00
More explanatory names for RigidBody modes
MODE_DYNAMIC instead of MODE_RIGID MODE_DYNAMIC_LOCKED instead of MODE_CHARACTER No more special case for sleeping behavior for MODE_DYNAMIC_LOCKED (MODE_CHARACTER was forcing the body not to sleep, which is redundant with can_sleep and wasn't done in Bullet).
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
</brief_description>
|
||||
<description>
|
||||
This is the node that implements full 3D physics. This means that you do not control a RigidBody3D directly. Instead, you can apply forces to it (gravity, impulses, etc.), and the physics simulation will calculate the resulting movement, collision, bouncing, rotating, etc.
|
||||
A RigidBody3D has 4 behavior [member mode]s: Rigid, Static, Character, and Kinematic.
|
||||
A RigidBody3D has 4 behavior [member mode]s: Dynamic, Static, DynamicLocked, and Kinematic.
|
||||
[b]Note:[/b] Don't change a RigidBody3D's position every frame or very often. Sporadic changes work fine, but physics runs at a different granularity (fixed Hz) than usual rendering (process callback) and maybe even in a separate thread, so changing this from a process loop may result in strange behavior. If you need to directly affect the body's state, use [method _integrate_forces], which allows you to directly access the physics state.
|
||||
If you need to override the default physics behavior, you can write a custom force integration function. See [member custom_integrator].
|
||||
With Bullet physics (the default), the center of mass is the RigidBody3D center. With GodotPhysics, the center of mass is the average of the [CollisionShape3D] centers.
|
||||
@@ -121,7 +121,6 @@
|
||||
</member>
|
||||
<member name="can_sleep" type="bool" setter="set_can_sleep" getter="is_able_to_sleep" default="true">
|
||||
If [code]true[/code], the body can enter sleep mode when there is no movement. See [member sleeping].
|
||||
[b]Note:[/b] A RigidBody3D will never enter sleep mode automatically if its [member mode] is [constant MODE_CHARACTER]. It can still be put to sleep manually by setting its [member sleeping] property to [code]true[/code].
|
||||
</member>
|
||||
<member name="contact_monitor" type="bool" setter="set_contact_monitor" getter="is_contact_monitor_enabled" default="false">
|
||||
If [code]true[/code], the RigidBody3D will emit signals when it collides with another RigidBody3D. See also [member contacts_reported].
|
||||
@@ -222,14 +221,14 @@
|
||||
</signal>
|
||||
</signals>
|
||||
<constants>
|
||||
<constant name="MODE_RIGID" value="0" enum="Mode">
|
||||
Rigid body mode. This is the "natural" state of a rigid body. It is affected by forces, and can move, rotate, and be affected by user code.
|
||||
<constant name="MODE_DYNAMIC" value="0" enum="Mode">
|
||||
Dynamic body mode. This is the default mode of a rigid body. It is affected by forces, and can move, rotate, and be affected by user code.
|
||||
</constant>
|
||||
<constant name="MODE_STATIC" value="1" enum="Mode">
|
||||
Static body mode. The body behaves like a [StaticBody3D], and can only move by user code.
|
||||
</constant>
|
||||
<constant name="MODE_CHARACTER" value="2" enum="Mode">
|
||||
Character body mode. Similar to [constant MODE_RIGID], but the body can not rotate.
|
||||
<constant name="MODE_DYNAMIC_LOCKED" value="2" enum="Mode">
|
||||
Locked dynamic body mode. Similar to [constant MODE_DYNAMIC], but the body can not rotate.
|
||||
</constant>
|
||||
<constant name="MODE_KINEMATIC" value="3" enum="Mode">
|
||||
Kinematic body mode. The body behaves like a [StaticBody3D] with [code]kinematic_motion[/code] enabled, and can only move by user code.
|
||||
|
||||
Reference in New Issue
Block a user