diff --git a/scene/3d/mesh_instance_3d.cpp b/scene/3d/mesh_instance_3d.cpp index 41977b78d86..09670358161 100644 --- a/scene/3d/mesh_instance_3d.cpp +++ b/scene/3d/mesh_instance_3d.cpp @@ -380,17 +380,17 @@ Ref MeshInstance3D::get_active_material(int p_surface) const { return mat_override; } + Ref m = get_mesh(); + if (m.is_null() || m->get_surface_count() == 0) { + return Ref(); + } + Ref surface_material = get_surface_override_material(p_surface); if (surface_material.is_valid()) { return surface_material; } - Ref m = get_mesh(); - if (m.is_valid()) { - return m->surface_get_material(p_surface); - } - - return Ref(); + return m->surface_get_material(p_surface); } void MeshInstance3D::_mesh_changed() {