61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System.Collections;
 | |
| using System.Collections.Generic;
 | |
| using UnityEngine;
 | |
| using UnityEditor;
 | |
| using System.IO;
 | |
| using System.Linq;
 | |
| using ES3Internal;
 | |
| 
 | |
| public class ES3EditorUtility : Editor 
 | |
| {
 | |
| 	public static void DisplayLink(string label, string url)
 | |
| 	{
 | |
| 		var style = ES3Editor.EditorStyle.Get;
 | |
| 		if(GUILayout.Button(label, style.link))
 | |
| 			Application.OpenURL(url);
 | |
| 
 | |
| 		var buttonRect = GUILayoutUtility.GetLastRect();
 | |
| 		buttonRect.width = style.link.CalcSize(new GUIContent(label)).x;
 | |
| 
 | |
| 		EditorGUIUtility.AddCursorRect(buttonRect, MouseCursor.Link);	
 | |
| 	}
 | |
| 
 | |
| 	public static bool IsPrefabInAssets(UnityEngine.Object obj)
 | |
| 	{
 | |
| 		#if UNITY_2018_3_OR_NEWER
 | |
| 		return PrefabUtility.IsPartOfPrefabAsset(obj);
 | |
| 		#else
 | |
| 		return (PrefabUtility.GetPrefabType(obj) == PrefabType.Prefab);
 | |
| 		#endif
 | |
| 	}
 | |
| 
 | |
|     /* 
 | |
|      * Gets all children and components from a GameObject or GameObjects.
 | |
|      * We create our own method for this because EditorUtility.CollectDeepHierarchy isn't thread safe in the Editor.
 | |
|      */
 | |
|     public static IEnumerable<UnityEngine.Object> CollectDeepHierarchy(IEnumerable<GameObject> gos)
 | |
|     {
 | |
|         var deepHierarchy = new HashSet<UnityEngine.Object>();
 | |
|         foreach (var go in gos)
 | |
|         {
 | |
|             deepHierarchy.Add(go);
 | |
|             deepHierarchy.UnionWith(go.GetComponents<Component>());
 | |
|             foreach (Transform t in go.transform)
 | |
|                 deepHierarchy.UnionWith( CollectDeepHierarchy( new GameObject[] { t.gameObject } ) );
 | |
|         }
 | |
|         return deepHierarchy;
 | |
|     }
 | |
| 
 | |
|     [MenuItem("Tools/Easy Save 3/Getting Started...", false, 0)]
 | |
|     public static void DisplayGettingStarted()
 | |
|     {
 | |
|         Application.OpenURL("https://docs.moodkie.com/easy-save-3/getting-started/");
 | |
|     }
 | |
| 
 | |
|     [MenuItem("Tools/Easy Save 3/Manual...", false, 0)]
 | |
|     public static void DisplayManual()
 | |
|     {
 | |
|         Application.OpenURL("https://docs.moodkie.com/product/easy-save-3/");
 | |
|     }
 | |
| }
 |