Enum - EditorWindowType
1
2
3
4
5
6
7
8
9
10
[Flags]
private enum EditorWindowType
{
Scene = 1,
Game = 2,
Inspector = 4,
Hierarchy = 8,
Project = 16,
Console = 32
}
특정 윈도우에 포커스하기
1
2
3
4
private static void FocusOnWindow(EditorWindowType windowType)
{
EditorApplication.ExecuteMenuItem("Window/General/" + windowType.ToString());
}
현재 선택된 윈도우에 키 이벤트 발생시키기
1
2
3
4
5
6
/// <summary> 현재 선택된 윈도우에 특정 키 이벤트 발생시키기 </summary>
private static void InvokeKeyEventOnFocusedWindow(KeyCode key, EventType eventType)
{
var keyEvent = new Event { keyCode = key, type = eventType };
EditorWindow.focusedWindow.SendEvent(keyEvent);
}
현재 선택된 윈도우 타입 검사하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// using System.Linq;
/// <summary> 현재 활성화된 윈도우 타입 검사 (OR 연산으로 다중 검사 가능) </summary>
private static bool CheckFocusedWindow(EditorWindowType type)
{
string currentWindowTitle = EditorWindow.focusedWindow.titleContent.text;
var enumElements = Enum.GetValues(typeof(EditorWindowType)).Cast<EditorWindowType>();
foreach (var item in enumElements)
{
if((type & item) != 0 && item.ToString() == currentWindowTitle)
return true;
}
return false;
}