Описание
Проверяет, получены ли события MouseEnterWindow и MouseLeaveWindow в графическом интерфейсе в этом окне редактора.
Если установлено значение true, окно получает вызов OnGUI всякий раз, когда мышь входит в окно или покидает его.
Примечание. Эта функция не запускает Repaint() автоматически. Кроме того, вход в окно или выход из него при нажатой кнопке мыши не вызывает ни одно из событий, поскольку нажатие кнопки мыши активирует режим перетаскивания (см. EventType.MouseDrag и др. связанные события для получения дополнительной информации).
// Editor Скрипт, показывающий, как мышь входит и выходит из оконных событий
// попасть в окно Редактора
using UnityEditor;
using UnityEngine;
public class WantsMouseEnterLeaveWindowEx : EditorWindow
{
[MenuItem("Example/wantsMouseEnterLeaveWindow example")]
static void Init()
{
EditorWindow editorWindow = GetWindow(typeof(WantsMouseEnterLeaveWindowEx));
editorWindow.Show();
}
public void OnGUI()
{
wantsMouseEnterLeaveWindow = EditorGUILayout.Toggle("Receive Enter/Leave: ", wantsMouseEnterLeaveWindow);
EditorGUILayout.LabelField("Check Console for MouseEnter/LeaveWindow messages");
// Repaint the window as wantsMouseEnterLeaveWindow doesnt trigger a repaint automatically
if (Event.current.type == EventType.MouseEnterWindow ||
Event.current.type == EventType.MouseLeaveWindow)
{
Debug.Log("Received event " +
((Event.current.type == EventType.MouseEnterWindow) ? "MouseEnterWindow" : "MouseLeaveWindow"));
Repaint();
}
}
}