64 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C#
		
	
	
	
| #if UNITY_EDITOR
 | |
| using UnityEditor;
 | |
| 
 | |
| #endif
 | |
| 
 | |
| namespace SRF.Helpers
 | |
| {
 | |
|     using System.IO;
 | |
|     using UnityEngine;
 | |
| 
 | |
|     public static class AssetUtil
 | |
|     {
 | |
| #if UNITY_EDITOR
 | |
| 
 | |
|         //	This makes it easy to create, name and place unique new ScriptableObject asset files.
 | |
|         /// <summary>
 | |
|         /// </summary>
 | |
|         public static T CreateAsset<T>() where T : ScriptableObject
 | |
|         {
 | |
|             var path = AssetDatabase.GetAssetPath(Selection.activeObject);
 | |
| 
 | |
|             if (path == "")
 | |
|             {
 | |
|                 path = "Assets";
 | |
|             }
 | |
|             else if (Path.GetExtension(path) != "")
 | |
|             {
 | |
|                 path = path.Replace(Path.GetFileName(path), "");
 | |
|             }
 | |
| 
 | |
|             return CreateAsset<T>(path, "New " + typeof (T).Name);
 | |
|         }
 | |
| 
 | |
|         public static T CreateAsset<T>(string path, string name) where T : ScriptableObject
 | |
|         {
 | |
|             if (string.IsNullOrEmpty(path))
 | |
|             {
 | |
|                 path = "Assets";
 | |
|             }
 | |
| 
 | |
|             if (!name.EndsWith(".asset"))
 | |
|             {
 | |
|                 name += ".asset";
 | |
|             }
 | |
| 
 | |
|             var assetPathAndName = AssetDatabase.GenerateUniqueAssetPath(path + "/" + name);
 | |
| 
 | |
|             var asset = ScriptableObject.CreateInstance<T>();
 | |
|             AssetDatabase.CreateAsset(asset, assetPathAndName);
 | |
|             AssetDatabase.SaveAssets();
 | |
| 
 | |
|             return asset;
 | |
|         }
 | |
| 
 | |
|         public static void SelectAssetInProjectView(Object asset)
 | |
|         {
 | |
|             EditorUtility.FocusProjectWindow();
 | |
|             Selection.activeObject = asset;
 | |
|         }
 | |
| 
 | |
| #endif
 | |
|     }
 | |
| }
 |