Singularity/Library/PackageCache/com.unity.2d.common@6.0.6/Editor/InternalBridge/InternalEditorBridge.cs
2024-05-06 11:45:45 -07:00

143 lines
4.7 KiB
C#

using System;
using System.Reflection;
using UnityEditor.ShortcutManagement;
using UnityEditor.U2D.Sprites;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UIElements;
namespace UnityEditor.U2D.Common
{
internal static class InternalEditorBridge
{
public static void RenderSortingLayerFields(SerializedProperty order, SerializedProperty layer)
{
SortingLayerEditorUtility.RenderSortingLayerFields(order, layer);
}
public static void RepaintImmediately(EditorWindow window)
{
window.RepaintImmediately();
}
public static ISpriteEditorDataProvider GetISpriteEditorDataProviderFromPath(string importedAsset)
{
return AssetImporter.GetAtPath(importedAsset) as ISpriteEditorDataProvider;
}
public static void GenerateOutline(Texture2D texture, Rect rect, float detail, byte alphaTolerance, bool holeDetection, out Vector2[][] paths)
{
UnityEditor.Sprites.SpriteUtility.GenerateOutline(texture, rect, detail, alphaTolerance, holeDetection, out paths);
}
public static void GenerateOutlineFromSprite(Sprite sprite, float detail, byte alphaTolerance, bool holeDetection, out Vector2[][] paths)
{
UnityEditor.Sprites.SpriteUtility.GenerateOutlineFromSprite(sprite, detail, alphaTolerance, holeDetection, out paths);
}
public static bool DoesHardwareSupportsFullNPOT()
{
return ShaderUtil.hardwareSupportsFullNPOT;
}
public static Texture2D CreateTemporaryDuplicate(Texture2D tex, int width, int height)
{
return UnityEditor.SpriteUtility.CreateTemporaryDuplicate(tex, width, height);
}
public static void ShowSpriteEditorWindow(UnityEngine.Object obj = null)
{
SpriteUtilityWindow.ShowSpriteEditorWindow(obj);
}
public static void ApplySpriteEditorWindow()
{
SpriteUtilityWindow.ApplySpriteEditorWindow();
}
public static void ApplyWireMaterial()
{
HandleUtility.ApplyWireMaterial();
}
public static void ResetSpriteEditorView(ISpriteEditor spriteEditor)
{
if (spriteEditor != null)
{
Type t = spriteEditor.GetType();
var zoom = t.GetField("m_Zoom", BindingFlags.Instance | BindingFlags.NonPublic);
if (zoom != null)
{
zoom.SetValue(spriteEditor, -1);
}
var scrollPosition = t.GetField("m_ScrollPosition", BindingFlags.Instance | BindingFlags.NonPublic);
if (scrollPosition != null)
{
scrollPosition.SetValue(spriteEditor, new Vector2());
}
}
}
public class ShortcutContext : IShortcutToolContext
{
public Func<bool> isActive;
public bool active
{
get
{
if (isActive != null)
return isActive();
return true;
}
}
public object context { get; set; }
}
public static void RegisterShortcutContext(ShortcutContext context)
{
ShortcutIntegration.instance.contextManager.RegisterToolContext(context);
}
public static void UnregisterShortcutContext(ShortcutContext context)
{
ShortcutIntegration.instance.contextManager.DeregisterToolContext(context);
}
public static void AddEditorApplicationProjectLoadedCallback(UnityAction callback)
{
EditorApplication.projectWasLoaded += callback;
}
public static void RemoveEditorApplicationProjectLoadedCallback(UnityAction callback)
{
EditorApplication.projectWasLoaded -= callback;
}
public static string GetProjectWindowActiveFolderPath()
{
return ProjectWindowUtil.GetActiveFolderPath();
}
public static GUIContent GetIconContent<T>() where T : UnityEngine.Object
{
return EditorGUIUtility.IconContent<T>();
}
public static int GetAssetCreationInstanceID_ForNonExistingAssets()
{
return ProjectBrowser.kAssetCreationInstanceID_ForNonExistingAssets;
}
public static VisualElement SceneViewCameraViewVisualElement(SceneView sc)
{
return sc.cameraViewVisualElement;
}
public static string TextureImporterDefaultPlatformName()
{
return TextureImporter.defaultPlatformName;
}
}
}