Browse Source

Merge pull request #74347 from JohanAR/master

Fixed incorrect ERROR message when setting new PrimitiveMesh
Rémi Verschelde 2 years ago
parent
commit
02a35522f0
1 changed files with 3 additions and 1 deletions
  1. 3 1
      scene/3d/mesh_instance_3d.cpp

+ 3 - 1
scene/3d/mesh_instance_3d.cpp

@@ -117,8 +117,10 @@ void MeshInstance3D::set_mesh(const Ref<Mesh> &p_mesh) {
 	mesh = p_mesh;
 
 	if (mesh.is_valid()) {
-		mesh->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &MeshInstance3D::_mesh_changed));
+		// If mesh is a PrimitiveMesh, calling get_rid on it can trigger a changed callback
+		// so do this before connecting _mesh_changed.
 		set_base(mesh->get_rid());
+		mesh->connect(CoreStringNames::get_singleton()->changed, callable_mp(this, &MeshInstance3D::_mesh_changed));
 		_mesh_changed();
 	} else {
 		blend_shape_tracks.clear();