public static void RebuildResources() { // Delete all existing resources string systemFileName = tk2dSystem.assetFileName.ToLower(); string tk2dIndexDir = "Assets/Resources/tk2d"; if (System.IO.Directory.Exists(tk2dIndexDir)) { string[] files = System.IO.Directory.GetFiles(tk2dIndexDir); foreach (string file in files) { string filename = System.IO.Path.GetFileName(file).ToLower(); if (filename.IndexOf(systemFileName) != -1) { continue; // don't delete system object } if (filename.IndexOf("tk2d_") == -1) { CustomDebug.LogError(string.Format("Unknown file '{0}' in tk2d resources directory, ignoring.", filename)); continue; } AssetDatabase.DeleteAsset(file); } } // Delete all referenced resources, in the event they've been moved out of the directory if (tk2dSystem.inst_NoCreate != null) { tk2dSystem sys = tk2dSystem.inst; tk2dResourceTocEntry[] toc = sys.Editor__Toc; for (int i = 0; i < toc.Length; ++i) { string path = AssetDatabase.GUIDToAssetPath(toc[i].resourceGUID); if (path.Length > 0) { AssetDatabase.DeleteAsset(path); } } sys.Editor__Toc = new tk2dResourceTocEntry[0]; // clear index EditorUtility.SetDirty(sys); AssetDatabase.SaveAssets(); } AssetDatabase.Refresh(); // Need to create new index? tk2dSpriteCollectionIndex[] spriteCollectionIndex = tk2dEditorUtility.GetExistingIndex().GetSpriteCollectionIndex(); tk2dGenericIndexItem[] fontIndex = tk2dEditorUtility.GetExistingIndex().GetFonts(); int numLoadableAssets = 0; foreach (tk2dGenericIndexItem font in fontIndex) { if (font.managed || font.loadable) { numLoadableAssets++; } } foreach (tk2dSpriteCollectionIndex sc in spriteCollectionIndex) { if (sc.managedSpriteCollection || sc.loadable) { numLoadableAssets++; } } // Need an index if (numLoadableAssets > 0) { // If it already existed, the index would have been cleared by now tk2dSystem sys = tk2dSystem.inst; foreach (tk2dGenericIndexItem font in fontIndex) { if (font.managed || font.loadable) { AddFontFromIndex(font); } tk2dEditorUtility.CollectAndUnloadUnusedAssets(); } foreach (tk2dSpriteCollectionIndex sc in spriteCollectionIndex) { if (sc.managedSpriteCollection || sc.loadable) { AddSpriteCollectionFromIndex(sc); } tk2dEditorUtility.CollectAndUnloadUnusedAssets(); } sys.SetUsePlatform(tk2dPreferences.inst.platform); EditorUtility.SetDirty(sys); AssetDatabase.SaveAssets(); Debug.Log(string.Format("Rebuilt {0} resources for tk2dSystem", sys.Editor__Toc.Length)); } tk2dEditorUtility.CollectAndUnloadUnusedAssets(); }
void OnGUI() { tk2dPreferences prefs = tk2dPreferences.inst; scroll = GUILayout.BeginScrollView(scroll, GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true)); tk2dGuiUtility.LookLikeControls(150.0f); prefs.displayTextureThumbs = EditorGUILayout.Toggle(label_spriteThumbnails, prefs.displayTextureThumbs); prefs.autoRebuild = EditorGUILayout.Toggle(label_autoRebuild, prefs.autoRebuild); prefs.showIds = EditorGUILayout.Toggle(label_showIds, prefs.showIds); prefs.gridType = (tk2dGrid.Type)EditorGUILayout.EnumPopup("Grid Type", prefs.gridType); if (prefs.gridType == tk2dGrid.Type.Custom) { EditorGUI.indentLevel++; prefs.customGridColor0 = EditorGUILayout.ColorField("Color 0", prefs.customGridColor0); prefs.customGridColor1 = EditorGUILayout.ColorField("Color 1", prefs.customGridColor1); EditorGUI.indentLevel--; } GUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel(" "); Rect r = GUILayoutUtility.GetRect(64, 64); GUILayout.FlexibleSpace(); tk2dGrid.Draw(r); GUILayout.EndHorizontal(); if (GUILayout.Button("Reset Editor Sizes")) { prefs.spriteCollectionListWidth = tk2dPreferences.Defaults.spriteCollectionListWidth; prefs.spriteCollectionInspectorWidth = tk2dPreferences.Defaults.spriteCollectionInspectorWidth; prefs.animListWidth = tk2dPreferences.Defaults.animListWidth; prefs.animInspectorWidth = tk2dPreferences.Defaults.animInspectorWidth; prefs.animFrameWidth = tk2dPreferences.Defaults.animFrameWidth; GUI.changed = true; } if (tk2dSystem.inst_NoCreate != null) { string newPlatform = tk2dGuiUtility.PlatformPopup(tk2dSystem.inst_NoCreate, "Platform", prefs.platform); if (newPlatform != prefs.platform) { prefs.platform = newPlatform; UnityEditor.EditorPrefs.SetString("tk2d_platform", newPlatform); tk2dSystem.CurrentPlatform = prefs.platform; // mirror to where it matters tk2dSystemUtility.PlatformChanged(); // tell the editor things have changed tk2dEditorUtility.UnloadUnusedAssets(); tk2dSystem sys = tk2dSystem.inst; sys.SetUsePlatform(prefs.platform); EditorUtility.SetDirty(sys); AssetDatabase.SaveAssets(); } } prefs.enableSpriteHandles = EditorGUILayout.Toggle(label_enableSpriteHandles, prefs.enableSpriteHandles); bool oldGuiEnable = GUI.enabled; GUI.enabled = prefs.enableSpriteHandles; EditorGUI.indentLevel++; prefs.enableMoveHandles = EditorGUILayout.Toggle(label_enableMoveHandles, prefs.enableMoveHandles); EditorGUI.indentLevel--; GUI.enabled = oldGuiEnable; EditorGUILayout.LabelField("Tilemap Paint Mode Colors"); ++EditorGUI.indentLevel; EditorGUI.BeginChangeCheck(); prefs.tileMapToolColor_brush = EditorGUILayout.ColorField("Brush", prefs.tileMapToolColor_brush); prefs.tileMapToolColor_brushRandom = EditorGUILayout.ColorField("Random", prefs.tileMapToolColor_brushRandom); prefs.tileMapToolColor_erase = EditorGUILayout.ColorField("Erase", prefs.tileMapToolColor_erase); prefs.tileMapToolColor_eyedropper = EditorGUILayout.ColorField("Eyedropper", prefs.tileMapToolColor_eyedropper); prefs.tileMapToolColor_cut = EditorGUILayout.ColorField("Cut", prefs.tileMapToolColor_cut); if (EditorGUI.EndChangeCheck()) { updateTilemapCursorColor = true; } --EditorGUI.indentLevel; GUILayout.EndScrollView(); if (GUI.changed) { tk2dPreferences.inst.Save(); } }