using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using System.IO; namespace BFEditor { [InitializeOnLoadAttribute] public static class BFEditorApplication { private const string DEFAULT_FONT_PATH = "assets/arts/fonts/tmpfonts/default/tmpfont/font_sdf.asset"; private const string DEFAULT_FONT_NUMBER_PATH = "assets/arts/fonts/tmpfonts/default/tmpfont/font_number_sdf.asset"; private const string DEFAULT_FONT_BATTLE_PATH = "assets/arts/fonts/tmpfonts/battle/font_battle_sdf.asset"; static BFEditorApplication() { EditorApplication.playModeStateChanged += PlayModeStateChanged; } private static void PlayModeStateChanged(PlayModeStateChange state) { // 编辑器下离开play模式 if (state == PlayModeStateChange.ExitingPlayMode) { // 游戏运行的时候处理了一下default字体资源,这里就需要重置一下,否则无法正常显示文本 if (File.Exists(DEFAULT_FONT_PATH)) { var fontAsset = AssetDatabase.LoadAssetAtPath(DEFAULT_FONT_PATH); if (fontAsset) { // fontAsset.characterTable.Clear(); fontAsset.ClearFontAssetData(); EditorUtility.SetDirty(fontAsset); } } if (File.Exists(DEFAULT_FONT_NUMBER_PATH)) { var fontAsset = AssetDatabase.LoadAssetAtPath(DEFAULT_FONT_NUMBER_PATH); if (fontAsset) { // fontAsset.characterTable.Clear(); fontAsset.ClearFontAssetData(); EditorUtility.SetDirty(fontAsset); } } if (File.Exists(DEFAULT_FONT_BATTLE_PATH)) { var fontAsset = AssetDatabase.LoadAssetAtPath(DEFAULT_FONT_BATTLE_PATH); if (fontAsset) { // fontAsset.characterTable.Clear(); fontAsset.ClearFontAssetData(); EditorUtility.SetDirty(fontAsset); } } AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); } } } }