Step4 :in your xx.cpp some different
UStaticMesh* URuntimeMeshImportExportLibrary::SaveProceduralMeshToStaticMesh(UProceduralMeshComponent* ProcMesh, FString AssetName, FString PathName)
{
…
//FString AssetName = FString(TEXT(“SM_”)) + LevelName + FString(TEXT("_") + ActorName);
//FString PathName = FString(TEXT("/Game/RobotMeshes/"));
FString PackageName = PathName + AssetName;
…
			FStaticMeshSourceModel& SrcModel = StaticMesh->AddSourceModel();
			SrcModel.BuildSettings.bRecomputeNormals = false;
			SrcModel.BuildSettings.bRecomputeTangents = false;
			SrcModel.BuildSettings.bRemoveDegenerates = false;
			SrcModel.BuildSettings.bUseHighPrecisionTangentBasis = false;
			SrcModel.BuildSettings.bUseFullPrecisionUVs = false;
			SrcModel.BuildSettings.bGenerateLightmapUVs = true;
			SrcModel.BuildSettings.SrcLightmapIndex = 0;
			SrcModel.BuildSettings.DstLightmapIndex = 1;
			SrcModel.SaveRawMesh(RawMesh);
…
			return StaticMesh;
		}
	}
}
return nullptr;
}
By the way: I test in 4.23.1 ,It work!