private static void ScanFont(string uri, ref List <NoesisFont> fonts) { int index = uri.IndexOf('#'); if (index != -1) { string folder = uri.Substring(0, index); if (Directory.Exists(folder)) { string family = uri.Substring(index + 1); var files = Directory.GetFiles(folder).Where(s => IsFont(s)); foreach (var font in files) { bool hasFamily = false; using (FileStream file = File.Open(font, FileMode.Open, FileAccess.Read)) { hasFamily = NoesisUnity.HasFamily(file, family); } if (hasFamily) { fonts.Add(ImportFont(font, false, false)); } } } } }
private static void FindFamilyNames(string directory, string family, HashSet <NoesisFont> fonts) { try { var files = Directory.GetFiles(directory) .Where(s => s.EndsWith(".ttf", StringComparison.OrdinalIgnoreCase) || s.EndsWith(".otf", StringComparison.OrdinalIgnoreCase)); foreach (var filename in files) { using (FileStream file = File.Open(filename, FileMode.Open)) { if (NoesisUnity.HasFamily(file, family)) { string uri = Path.ChangeExtension(NormalizePath(filename), ".asset"); string guid = AssetDatabase.AssetPathToGUID(uri); if (!String.IsNullOrEmpty(guid)) { NoesisFont f = AssetDatabase.LoadAssetAtPath <NoesisFont>(uri); if (f != null) { fonts.Add(f); } } } } } } catch (System.Exception) {} }