Ver código fonte

Merge pull request #12206 from SaracenOne/drag_and_drop_fix

Fix drag and drop collision with non-centred origin points.

[ci skip]
Rémi Verschelde 8 anos atrás
pai
commit
eacdcd7239
1 arquivos alterados com 8 adições e 2 exclusões
  1. 8 2
      editor/plugins/spatial_editor_plugin.cpp

+ 8 - 2
editor/plugins/spatial_editor_plugin.cpp

@@ -2765,8 +2765,14 @@ Vector3 SpatialEditorViewport::_get_instance_position(const Point2 &p_pos) const
 			normal = hit_normal;
 		}
 	}
-	Vector3 center = preview_bounds->get_size() * 0.5;
-	return point + (center * normal);
+	Vector3 offset = Vector3();
+	for (int i = 0; i < 3; i++) {
+		if (normal[i] > 0.0)
+			offset[i] = (preview_bounds->get_size()[i] - (preview_bounds->get_size()[i] + preview_bounds->get_position()[i]));
+		else if (normal[i] < 0.0)
+			offset[i] = -(preview_bounds->get_size()[i] + preview_bounds->get_position()[i]);
+	}
+	return point + offset;
 }
 
 Rect3 SpatialEditorViewport::_calculate_spatial_bounds(const Spatial *p_parent, const Rect3 p_bounds) {