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/");
 | 
						|
    }
 | 
						|
}
 |