Godot Version
4.3
Why does apply_impulse_torque() spin my pieces faster, if I spawn my character further from the origin of the scene (or move it further away). I’m trying to blow up my main character vehicle.
I can slow it down if I increase the inertia however
func break_vehicle_apart():
#var last_player_velocity = velocity
var intensity = 0.01
var broken = false
var break_position = global_position
$ThrusterFx.visible = false
set_physics_process(false)
for part in parts:
part.get_parent().remove_child(part)
var impulse = Vector3(randf_range(-10, 10), randf_range(5, 15), randf_range(-10, 10)) # Random impulse in all directions
var torque_impulse = Vector3(randf_range(-1, 1), randf_range(-1, 1), randf_range(-1, 1)) # Random torque in all directions
GameManager.mainWorld_instance.add_child(part)
part.global_position = GameManager.vehicle.global_position
part.rotation = GameManager.vehicle.rotation
part.set_freeze_enabled(0)
part.set_freeze_enabled(false)
part.collision_layer = 4
part.collision_mask = 2
part.linear_velocity = Vector3.ZERO
part.angular_velocity = Vector3.ZERO
part.inertia = Vector3(10, 10, 10) # Set a reasonable inertia
part.apply_impulse(impulse, part.position * intensity)
part.apply_torque_impulse(torque_impulse)