52 lines
1.5 KiB
C#
52 lines
1.5 KiB
C#
#if UNITY_EDITOR
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
namespace GSpawn
|
|
{
|
|
public static class SceneViewEx
|
|
{
|
|
public static bool sceneViewHasFocus()
|
|
{
|
|
return SceneView.lastActiveSceneView != null && EditorWindow.focusedWindow == SceneView.lastActiveSceneView;
|
|
}
|
|
|
|
public static void frame(Bounds bounds, bool instant)
|
|
{
|
|
if (SceneView.lastActiveSceneView != null) SceneView.lastActiveSceneView.Frame(bounds, instant);
|
|
}
|
|
|
|
public static void focus()
|
|
{
|
|
if (SceneView.lastActiveSceneView != null) SceneView.lastActiveSceneView.Focus();
|
|
}
|
|
|
|
public static bool containsCursor(this SceneView sceneView, Event e)
|
|
{
|
|
Vector2 mousePos = e.mousePosition;
|
|
return sceneView.containsPoint(mousePos);
|
|
}
|
|
|
|
public static bool containsCursor(Event e)
|
|
{
|
|
Vector2 mousePos = e.mousePosition;
|
|
return containsPoint(mousePos);
|
|
}
|
|
|
|
public static bool containsPoint(this SceneView sceneView, Vector2 point)
|
|
{
|
|
Camera camera = sceneView.camera;
|
|
return camera.pixelRect.Contains(point);
|
|
}
|
|
|
|
public static bool containsPoint(Vector2 point)
|
|
{
|
|
SceneView sceneView = SceneView.lastActiveSceneView;
|
|
if (sceneView == null) return false;
|
|
Camera camera = sceneView.camera;
|
|
|
|
return camera.pixelRect.Contains(point);
|
|
}
|
|
}
|
|
}
|
|
#endif |