- Home /
Get Project View position in editor
Does anyone know how to query the position of the Project View in screen space coordinates? Or any EditorWindow outside that EditorWindow without creating it?
Also, is there a way to get the mouse position (in screen space coordinates) in the editor? As far as I'm aware of, the Event.current.mousePosition
is already adjusted to the local window space.
Answer by Simon Says · Dec 11, 2013 at 09:11 PM
Yes, it is possible to query the position of the Project or Hierarchy view. Thanks to Tenebrous's UnityEditorEnhancements (http://hg.tenebrous.co.uk/unityeditorenhancements/wiki/Home) I found a way:
public static EditorWindow GetWindowByName( string pName )
{
UnityEngine.Object[] objectList = Resources.FindObjectsOfTypeAll( typeof( EditorWindow ) );
foreach( UnityEngine.Object obj in objectList )
{
if( obj.GetType().ToString() == pName )
return ( (EditorWindow)obj );
}
return ( null );
}
private static EditorWindow _projectWindow = null;
public static EditorWindow ProjectWindow
{
get
{
_projectWindow = _projectWindow ?? GetWindowByName("UnityEditor.ProjectWindow") ?? GetWindowByName("UnityEditor.ObjectBrowser") ?? GetWindowByName("UnityEditor.ProjectBrowser");
return ( _projectWindow );
}
}
private static EditorWindow _hierarchyWindow = null;
public static EditorWindow HierarchyWindow
{
get
{
_hierarchyWindow = _hierarchyWindow ?? GetWindowByName( "UnityEditor.HierarchyWindow" );
return ( _hierarchyWindow );
}
}
Rect positionOnScreen = ProjectWindow.position;
(All of the code is taken from the mentioned extension. I didn't write any of it.)
The types queried by name are not from public API, so the maintenance of such a code could be a little tricky. But it should work for all Unity versions released so far, and then the list can be updated if a type gets renamed in the future.
Your answer
Follow this Question
Related Questions
why I Cant Add Multiple Objects to the "Object Field" in Editor Window? 3 Answers
Can't move GameObject in Scene view with Unity Components attached 2021.2.2f 0 Answers
How do I wait until after AssetDatabase creates an assets before carrying out another function ? 0 Answers
Find instance of EditorWindow without creating new one? 2 Answers
Weird bug when dragging object onto EditorGUILayout.ObjectField 0 Answers