Browse Source

Fixed spine-unity and spine-tk2d to create assets in the current folder.

NathanSweet 11 years ago
parent
commit
4fa11e72d5
2 changed files with 14 additions and 12 deletions
  1. 7 6
      spine-tk2d/Assets/Spine/Editor/Menus.cs
  2. 7 6
      spine-unity/Assets/Spine/Editor/Menus.cs

+ 7 - 6
spine-tk2d/Assets/Spine/Editor/Menus.cs

@@ -38,14 +38,15 @@ public class Menus {
 		CreateAsset<SkeletonDataAsset>("New SkeletonData");
 	}
 	
-	static private void CreateAsset <T> (String path) where T : ScriptableObject {
-		try {
-			path = Path.GetDirectoryName(AssetDatabase.GetAssetPath(Selection.activeObject)) + "/" + path;
-		} catch (Exception) {
-			path = "Assets/" + path;
+	static private void CreateAsset <T> (String name) where T : ScriptableObject {
+		var dir = "Assets/";
+		var selected = Selection.activeObject;
+		if (selected != null) {
+			var assetDir = AssetDatabase.GetAssetPath(selected.GetInstanceID());
+			if (assetDir.Length > 0 && Directory.Exists(assetDir)) dir = assetDir + "/";
 		}
 		ScriptableObject asset = ScriptableObject.CreateInstance<T>();
-		AssetDatabase.CreateAsset(asset, path + ".asset");
+		AssetDatabase.CreateAsset(asset, dir + name + ".asset");
 		AssetDatabase.SaveAssets();
 		EditorUtility.FocusProjectWindow();
 		Selection.activeObject = asset;

+ 7 - 6
spine-unity/Assets/Spine/Editor/Menus.cs

@@ -43,14 +43,15 @@ public class SpineEditor {
 		CreateAsset<SkeletonDataAsset>("New SkeletonData");
 	}
 	
-	static private void CreateAsset <T> (String path) where T : ScriptableObject {
-		try {
-			path = Path.GetDirectoryName(AssetDatabase.GetAssetPath(Selection.activeObject)) + "/" + path;
-		} catch (Exception) {
-			path = "Assets/" + path;
+	static private void CreateAsset <T> (String name) where T : ScriptableObject {
+		var dir = "Assets/";
+		var selected = Selection.activeObject;
+		if (selected != null) {
+			var assetDir = AssetDatabase.GetAssetPath(selected.GetInstanceID());
+			if (assetDir.Length > 0 && Directory.Exists(assetDir)) dir = assetDir + "/";
 		}
 		ScriptableObject asset = ScriptableObject.CreateInstance<T>();
-		AssetDatabase.CreateAsset(asset, path + ".asset");
+		AssetDatabase.CreateAsset(asset, dir + name + ".asset");
 		AssetDatabase.SaveAssets();
 		EditorUtility.FocusProjectWindow();
 		Selection.activeObject = asset;