// ------------------------------------------------------------------ // Desc: // ------------------------------------------------------------------ static void CreateDB() { dbPath = EditorPrefs.GetString(dbKey, dbPath); // first create db directory if not exists string dbDir = Path.GetDirectoryName(dbPath); if (new DirectoryInfo(dbDir).Exists == false) { Directory.CreateDirectory(dbDir); } // get sprite animation clip db, if not found, create one db = (exSpriteAnimationDB)AssetDatabase.LoadAssetAtPath(dbPath, typeof(exSpriteAnimationDB)); if (db == null) { db = ScriptableObject.CreateInstance <exSpriteAnimationDB>(); AssetDatabase.CreateAsset(db, dbPath); needSync = true; } else { db = (exSpriteAnimationDB)AssetDatabase.LoadAssetAtPath(dbPath, typeof(exSpriteAnimationDB)); } // if (version != db.curVersion) { db.curVersion = version; needSync = true; EditorUtility.SetDirty(db); } }
// ------------------------------------------------------------------ // Desc: // ------------------------------------------------------------------ public override void OnInspectorGUI() { if (target != curEditTarget) { curEditTarget = target as exSpriteAnimationDB; } EditorGUIUtility.LookLikeInspector(); EditorGUILayout.Space(); // sync button EditorGUI.indentLevel = 1; if (GUILayout.Button("Sync", GUILayout.Width(100))) { exSpriteAnimationDB.ForceSync(); } // rebuild all if (GUILayout.Button("Build All", GUILayout.Width(100))) { exSpriteAnimationDB.BuildAll(); } // show version GUI.enabled = false; EditorGUILayout.LabelField("version", curEditTarget.curVersion.ToString()); GUI.enabled = true; // show spAnimClipGUIDs EditorGUI.indentLevel = 0; curEditTarget.showData = EditorGUILayout.Foldout(curEditTarget.showData, "SpriteAnimClip Asset List"); if (curEditTarget.showData) { GUI.enabled = false; EditorGUI.indentLevel = 2; for (int i = 0; i < curEditTarget.spAnimClipGUIDs.Count; ++i) { string guid = curEditTarget.spAnimClipGUIDs[i]; string path = AssetDatabase.GUIDToAssetPath(guid); string spAnimClipName = Path.GetFileNameWithoutExtension(path); EditorGUILayout.LabelField("[" + i + "]", spAnimClipName); } GUI.enabled = true; } // show texture to AtlasElement table EditorGUI.indentLevel = 0; curEditTarget.showTable = EditorGUILayout.Foldout(curEditTarget.showTable, "exAtlasInfo <-> SpriteAnimClip List"); if (curEditTarget.showTable) { GUI.enabled = false; foreach (KeyValuePair <string, List <string> > pair in exSpriteAnimationDB.GetTexGUIDToAnimClipGUIDs()) { string textureName = Path.GetFileNameWithoutExtension(AssetDatabase.GUIDToAssetPath(pair.Key)); EditorGUI.indentLevel = 2; EditorGUILayout.LabelField(textureName, ""); // SpriteAnimClips EditorGUI.indentLevel = 3; List <string> spAnimClipGUIDs = pair.Value; for (int i = 0; i < spAnimClipGUIDs.Count; ++i) { string spAnimClipName = Path.GetFileNameWithoutExtension(AssetDatabase.GUIDToAssetPath(spAnimClipGUIDs[i])); EditorGUILayout.LabelField("[" + i + "]", spAnimClipName); } EditorGUILayout.Space(); } GUI.enabled = true; } EditorGUI.indentLevel = 0; // if (GUI.changed) { EditorUtility.SetDirty(curEditTarget); } }
// ------------------------------------------------------------------ // Desc: // ------------------------------------------------------------------ public override void OnInspectorGUI() { if ( target != curEditTarget ) { curEditTarget = target as exSpriteAnimationDB; } EditorGUIUtility.LookLikeInspector (); EditorGUILayout.Space(); // sync button EditorGUI.indentLevel = 1; if ( GUILayout.Button ("Sync", GUILayout.Width(100)) ) { exSpriteAnimationDB.ForceSync(); } // rebuild all if ( GUILayout.Button ("Build All", GUILayout.Width(100)) ) { exSpriteAnimationDB.BuildAll(); } // show version GUI.enabled = false; EditorGUILayout.LabelField( "version", curEditTarget.curVersion.ToString() ); GUI.enabled = true; // show spAnimClipGUIDs EditorGUI.indentLevel = 0; curEditTarget.showData = EditorGUILayout.Foldout(curEditTarget.showData, "SpriteAnimClip Asset List"); if ( curEditTarget.showData ) { GUI.enabled = false; EditorGUI.indentLevel = 2; for ( int i = 0; i < curEditTarget.spAnimClipGUIDs.Count; ++i ) { string guid = curEditTarget.spAnimClipGUIDs[i]; string path = AssetDatabase.GUIDToAssetPath(guid); string spAnimClipName = Path.GetFileNameWithoutExtension (path); EditorGUILayout.LabelField( "[" + i + "]", spAnimClipName ); } GUI.enabled = true; } // show texture to AtlasElement table EditorGUI.indentLevel = 0; curEditTarget.showTable = EditorGUILayout.Foldout(curEditTarget.showTable, "exAtlasInfo <-> SpriteAnimClip List"); if ( curEditTarget.showTable ) { GUI.enabled = false; foreach ( KeyValuePair<string,List<string> > pair in exSpriteAnimationDB.GetTexGUIDToAnimClipGUIDs() ) { string textureName = Path.GetFileNameWithoutExtension ( AssetDatabase.GUIDToAssetPath(pair.Key) ); EditorGUI.indentLevel = 2; EditorGUILayout.LabelField ( textureName, "" ); // SpriteAnimClips EditorGUI.indentLevel = 3; List<string> spAnimClipGUIDs = pair.Value; for ( int i = 0; i < spAnimClipGUIDs.Count; ++i ) { string spAnimClipName = Path.GetFileNameWithoutExtension ( AssetDatabase.GUIDToAssetPath(spAnimClipGUIDs[i]) ); EditorGUILayout.LabelField ( "[" + i + "]", spAnimClipName ); } EditorGUILayout.Space(); } GUI.enabled = true; } EditorGUI.indentLevel = 0; // if ( GUI.changed ) { EditorUtility.SetDirty(curEditTarget); } }
// ------------------------------------------------------------------ // Desc: // ------------------------------------------------------------------ static void CreateDB() { dbPath = EditorPrefs.GetString( dbKey, dbPath ); // first create db directory if not exists string dbDir = Path.GetDirectoryName(dbPath); if ( new DirectoryInfo(dbDir).Exists == false ) { Directory.CreateDirectory (dbDir); } // get sprite animation clip db, if not found, create one db = (exSpriteAnimationDB)AssetDatabase.LoadAssetAtPath( dbPath, typeof(exSpriteAnimationDB) ); if ( db == null ) { db = ScriptableObject.CreateInstance<exSpriteAnimationDB>(); AssetDatabase.CreateAsset( db, dbPath ); needSync = true; } else { db = (exSpriteAnimationDB)AssetDatabase.LoadAssetAtPath( dbPath, typeof(exSpriteAnimationDB) ); } // if ( version != db.curVersion ) { db.curVersion = version; needSync = true; EditorUtility.SetDirty(db); } }