Browse Source

Merge pull request #54154 from bjauny/fix_areanotification

Rémi Verschelde 3 years ago
parent
commit
187f293189
2 changed files with 6 additions and 3 deletions
  1. 3 1
      scene/2d/collision_object_2d.cpp
  2. 3 2
      scene/3d/collision_object.cpp

+ 3 - 1
scene/2d/collision_object_2d.cpp

@@ -44,7 +44,9 @@ void CollisionObject2D::_notification(int p_what) {
 				Physics2DServer::get_singleton()->body_set_state(rid, Physics2DServer::BODY_STATE_TRANSFORM, global_transform);
 			}
 
-			RID space = get_world_2d()->get_space();
+			Ref<World2D> world_ref = get_world_2d();
+			ERR_FAIL_COND(!world_ref.is_valid());
+			RID space = world_ref->get_space();
 			if (area) {
 				Physics2DServer::get_singleton()->area_set_space(rid, space);
 			} else {

+ 3 - 2
scene/3d/collision_object.cpp

@@ -60,13 +60,14 @@ void CollisionObject::_notification(int p_what) {
 				PhysicsServer::get_singleton()->body_set_state(rid, PhysicsServer::BODY_STATE_TRANSFORM, get_global_transform());
 			}
 
-			RID space = get_world()->get_space();
+			Ref<World> world_ref = get_world();
+			ERR_FAIL_COND(!world_ref.is_valid());
+			RID space = world_ref->get_space();
 			if (area) {
 				PhysicsServer::get_singleton()->area_set_space(rid, space);
 			} else {
 				PhysicsServer::get_singleton()->body_set_space(rid, space);
 			}
-
 			_update_pickable();
 			//get space
 		} break;