检查此编辑器窗口中的 GUI 是否接收 MouseMove 事件。
当启用切换按钮且鼠标悬停在窗口上时,检测鼠标移动的编辑器窗口。
// Editor Script that shows the mouse movement events captured. // "Mouse Position" shows where the mouse is outside of the window. using UnityEditor; using UnityEngine; using System.Collections; using UnityEngine.UIElements; public class PointerMove : EditorWindow { [MenuItem("Examples/Mouse Move Example")] static void InitWindow() { PointerMove window = (PointerMove)GetWindowWithRect(typeof(PointerMove), new Rect(0, 0, 300, 100)); window.Show(); } Label m_PointerPosition; void CreateGUI() { rootVisualElement.pickingMode = PickingMode.Position; // Create a toggle button that toggles the value of wantsMouseMove var toggle = new Toggle { text = "Receive Movement" }; wantsMouseMove = toggle.value; rootVisualElement.Add(toggle); m_PointerPosition = new Label(); rootVisualElement.Add(m_PointerPosition); toggle.RegisterValueChangedCallback((evt) => { if (evt.newValue) rootVisualElement.RegisterCallback<PointerMoveEvent>(LogPointerMoved); else rootVisualElement.UnregisterCallback<PointerMoveEvent>(LogPointerMoved); }); } void LogPointerMoved(PointerMoveEvent evt) { m_PointerPosition.text = $"Pointer Position: {evt.position}"; } }