浏览代码

Merge pull request #63692 from rburing/nonexistent_debug_shapes_dont_move

Don't move nonexistent debug shapes
Rémi Verschelde 3 年之前
父节点
当前提交
960567e17b
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      scene/3d/collision_object_3d.cpp

+ 3 - 0
scene/3d/collision_object_3d.cpp

@@ -403,6 +403,9 @@ void CollisionObject3D::_on_transform_changed() {
 		debug_shape_old_transform = get_global_transform();
 		debug_shape_old_transform = get_global_transform();
 		for (KeyValue<uint32_t, ShapeData> &E : shapes) {
 		for (KeyValue<uint32_t, ShapeData> &E : shapes) {
 			ShapeData &shapedata = E.value;
 			ShapeData &shapedata = E.value;
+			if (shapedata.disabled) {
+				continue; // If disabled then there are no debug shapes to update.
+			}
 			const ShapeData::ShapeBase *shapes = shapedata.shapes.ptr();
 			const ShapeData::ShapeBase *shapes = shapedata.shapes.ptr();
 			for (int i = 0; i < shapedata.shapes.size(); i++) {
 			for (int i = 0; i < shapedata.shapes.size(); i++) {
 				RS::get_singleton()->instance_set_transform(shapes[i].debug_shape, debug_shape_old_transform * shapedata.xform);
 				RS::get_singleton()->instance_set_transform(shapes[i].debug_shape, debug_shape_old_transform * shapedata.xform);