Merge pull request #34047 from nekomatata/physical-bone-remove-joint
Properly remove joint when a physical bone is removed from the scene
This commit is contained in:
commit
e9b709a5db
1 changed files with 7 additions and 1 deletions
|
@ -2161,6 +2161,9 @@ void PhysicalBone::_notification(int p_what) {
|
|||
update_bone_id();
|
||||
reset_to_rest_position();
|
||||
_reset_physics_simulation_state();
|
||||
if (!joint.is_valid() && joint_data) {
|
||||
_reload_joint();
|
||||
}
|
||||
break;
|
||||
case NOTIFICATION_EXIT_TREE:
|
||||
if (parent_skeleton) {
|
||||
|
@ -2169,7 +2172,10 @@ void PhysicalBone::_notification(int p_what) {
|
|||
}
|
||||
}
|
||||
parent_skeleton = NULL;
|
||||
update_bone_id();
|
||||
if (joint.is_valid()) {
|
||||
PhysicsServer::get_singleton()->free(joint);
|
||||
joint = RID();
|
||||
}
|
||||
break;
|
||||
case NOTIFICATION_TRANSFORM_CHANGED:
|
||||
if (Engine::get_singleton()->is_editor_hint()) {
|
||||
|
|
Loading…
Reference in a new issue