public static PowerSpriteImport CreateImporter(string path) { PowerSpriteImport asset = ScriptableObject.CreateInstance <PowerSpriteImport>(); AssetDatabase.CreateAsset(asset, path); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); return(asset); }
public static void CreateImporter() { PowerSpriteImport asset = ScriptableObject.CreateInstance <PowerSpriteImport> (); string path = AssetDatabase.GetAssetPath(Selection.activeObject); if (path == "") { path = "Assets"; } else if (Path.GetExtension(path) != "") { path = path.Replace(Path.GetFileName(AssetDatabase.GetAssetPath(Selection.activeObject)), ""); } string assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/SpriteImporter.asset"); AssetDatabase.CreateAsset(asset, assetPathAndName); AssetDatabase.SaveAssets(); AssetDatabase.Refresh(); EditorUtility.FocusProjectWindow(); Selection.activeObject = asset; }
void OnEnable() { m_component = (PowerSpriteImport)target; m_items = m_component.m_animations; if (Directory.Exists(m_component.m_sourceDirectory) == false) { m_component.m_sourceDirectory = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop); } RecalcLengths(); m_list = new ReorderableList(serializedObject, serializedObject.FindProperty(LIST_PROPERTY_NAME), true, true, true, true); m_list.drawHeaderCallback = (Rect rect) => { EditorGUI.LabelField(new Rect(rect) { width = rect.width }, "Animation Name"); EditorGUI.LabelField(new Rect(rect) { x = rect.width - 47, width = 100 }, "First Frame"); }; m_list.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => { SerializedProperty listItem = m_list.serializedProperty.GetArrayElementAtIndex(index); rect.y += 2; EditorGUI.BeginChangeCheck(); EditorGUI.PropertyField(new Rect(rect.x, rect.y, rect.width - 45, EditorGUIUtility.singleLineHeight), listItem.FindPropertyRelative("m_name"), GUIContent.none); if (EditorGUI.EndChangeCheck()) { m_list.index = index; } //EditorGUI.LabelField(new Rect(rect.x + rect.width-90, rect.y, 90, EditorGUIUtility.singleLineHeight), "1st frame:"); EditorGUI.BeginChangeCheck(); m_items[index].m_firstFrame = EditorGUI.DelayedIntField(new Rect(rect.x + rect.width - 40, rect.y, 40, EditorGUIUtility.singleLineHeight), m_items[index].m_firstFrame); if (EditorGUI.EndChangeCheck()) { // Recalc previous length since it will have changed if (index > 0) { m_items[index - 1].m_length = Mathf.Max(1, m_items[index].m_firstFrame - m_items[index - 1].m_firstFrame); } // Recalc first frames RecalcFirstFrames(); } }; m_list.onAddCallback += (list) => { if (m_list.index < 0 || m_list.index >= m_list.count - 1) { m_items.Add(new PowerSpriteImport.AnimImportData()); m_list.index = m_list.index + 1; } else { m_items.Insert(m_list.index + 1, new PowerSpriteImport.AnimImportData()); m_list.index = m_list.index + 1; } RecalcFirstFrames(); }; m_list.onRemoveCallback += (list) => { int index = m_list.index; m_items.RemoveAt(m_list.index); RecalcFirstFrames(); index--; if (index >= 0) { m_list.index = index; } }; m_list.onReorderCallback += (list) => { RecalcFirstFrames(); }; }