Custom Editor движение мышки
В кастумном Editor хочется подсвечивать позицию спавна под курсором на некой плоскости типа
Handles.DrawSolidDisc(SomeTargetPosition, new Vector3(0, 1, 0), 32);
Но поскольку ничего не меняется, OnSceneGUI или OnInspectorGUI на движении мышки реагировать не будет, а Update в Editor нет. Как быть?
Ответы (1 шт):
Автор решения: Yaroslav
→ Ссылка
GUIUtility.hotControl отключает реакцию других объектов сцены на клики.
public void OnSceneGUI () {
var CurrentEvent = Event.current;
int controlID = GUIUtility.GetControlID (FocusType.Passive);
switch (CurrentEvent.GetTypeForControl(controlID)) {
case EventType.MouseDown: {
GUIUtility.hotControl = controlID;
Debug.Log("MouseDown");
CurrentEvent.Use();
} break;
case EventType.MouseMove: {
Debug.Log("MouseMove");
CurrentEvent.Use();
} break;
case EventType.MouseDrag: {
GUIUtility.hotControl = controlID;
Debug.Log("MouseDrag");
CurrentEvent.Use();
} break;
case EventType.MouseUp: {
GUIUtility.hotControl = 0;
Debug.Log("MouseUp");
CurrentEvent.Use();
} break;
case EventType.KeyDown: {
if (Event.current.keyCode == KeyCode.Escape)
Debug.Log("Escape");
if (Event.current.keyCode == KeyCode.Space)
Debug.Log("Space");
} break;
}
}