private static void LoadFonts() { string fontPath = Application.dataPath.Substring(0, Application.dataPath.Length - 6) + ToolMenu.fontPath; bool NoFound = true; if (File.Exists(fontPath)) { FontList fontList = AssetDatabase.LoadAssetAtPath <FontList>(ToolMenu.fontPath); if (null != fontList && fontList.list.Count > 0) { NoFound = false; m_Fonts = fontList.list; } } if (NoFound) { m_Fonts = new List <FontItem>() { new FontItem() { Name = "Arial", Font = Resources.GetBuiltinResource <Font>("Arial.ttf") } }; } }
public static void CreateFontAsset() { fontPath = "Assets/Art/Fonts/Fonts.asset"; string fullPath = Application.dataPath.Substring(0, Application.dataPath.Length - 6) + fontPath; if (File.Exists(fullPath)) { File.Delete(fullPath); } Util.MakeDirs(Path.GetDirectoryName(fullPath)); FontList fontList = new FontList(); fontList.list.Add(new FontItem() { Name = "Arial", Font = Resources.GetBuiltinResource <Font>("Arial.ttf") }); //遍历目录下字体文件,自动加载 string[] files = Directory.GetFiles(Path.GetDirectoryName(fullPath)); foreach (var file in files) { if (file.EndsWith(".ttf") || file.EndsWith(".ttc")) { fontList.list.Add(new FontItem() { Name = Path.GetFileNameWithoutExtension(file), Font = AssetDatabase.LoadAssetAtPath <Font>(file.Substring(file.IndexOf("Assets"), file.Length - file.IndexOf("Assets"))) }); } } AssetDatabase.CreateAsset(fontList, fontPath); AssetDatabase.Refresh(); }