3D

RigidBody3D

Dynamic 3D physics body.

Body with mass, velocity, gravity, damping, friction, restitution, and density fields.

Base node: Node3D

Source: perro_source/core/perro_nodes/src/nodes/physics_3d.rs

Fields

enabledmasslinear_velocityangular_velocitygravity_scalelinear_dampingangular_dampingfrictionrestitutiondensity
pub struct RigidBody3D {    pub base: Node3D,    pub enabled: bool,    pub mass: f32,    pub linear_velocity: Vector3,    pub angular_velocity: Vector3,}

Scene template

[node_instance]tags = ["runtime", "demo"]parent = @rootscript = "res://script.rs"script_vars = { speed = 4.0, health = 100 }   [RigidBody3D]    enabled = true    mass = 1.0    linear_velocity = (120, 48, 0)    angular_velocity = (120, 48, 0)    gravity_scale = (1, 1, 1)  [/RigidBody3D][/node_instance]

Script API

Create

let node_id = create_node!(ctx, RigidBody3D, "Spawned Node", ["enemy", "runtime"], parent_id);

Access / mutate

let value = with_node!(ctx, RigidBody3D, node_id, |node| {    node.enabled}); let pair = with_node!(ctx, RigidBody3D, node_id, |node| {    (node.enabled, node.mass)}); with_node_mut!(ctx, RigidBody3D, node_id, |node| {    node.enabled = true;});