如何解决在 Unity 中检测鼠标从 Inspector 释放焦点
您是否看到在编辑图像资产上的值后,然后单击外部任意位置而不先单击应用,会出现一个窗口,询问您是要保存还是放弃更改?
所以,我很想从 OnGUI()
或 OnSceneGUI()
中做到这一点,并且在开始编写 MyClassEditor : Editor
后立即意识到我不仅知道如何完成这样的事情;但显然我什至不知道从哪里开始搜索如何检测鼠标“进入”或“离开”UI 中的任何内容......如果可能的话。
This 是我在谷歌搜索“检测鼠标离开检查员统一”时首先发现的,据我所知,它是关于检测屏幕边界和游戏窗口边界的边缘。所以我检查了 the next result,它现在看起来很有希望,因为它似乎描述了我的问题,但这是误导,因为该解决方案适用于检测场景视图内的鼠标而不会失去 UI 的焦点..和我想检测失去的焦点,所以我回到谷歌只是偶然发现了几个(更像是几个 tbh) 更多类似的案例(比如对 MonobehavIoUr.OnMouseEnter/Exit
的统一引用)。
这可能表明我有多迷茫,我并不是要解决任何问题,但也许朝着正确的方向稍微推动一下就可以了?我感谢每一个小小的帮助。
编辑:
所以我在 [CustomEditor(typeof(MyClass))] public class MyClassEditor : Editor
中尝试了这个:
public override void OnInspectorGUI()
{
Event e = Event.current;
switch (e.type)
{
case EventType.MouseDown:
Debug.Log("mouse down");
break;
case EventType.MouseEnterWindow:
Debug.Log("mouse left a window");
break;
case EventType.MouseLeaveWindow:
Debug.Log("mouse entered a window");
break;
default:
break;
}
base.OnInspectorGUI();
var click = GUILayout.Button("Quick Fill");
if (click)
{
MyClassEditorWindow.Open((MyClass)target);
}
}
即使按钮起作用并且[鼠标按下]触发(仅当单击我认为是UIElements(?)的顶部时,但-但不在它们之外,在空的检查器区域-),另一个两个似乎没有被解雇......很确定我做错了一件事,不知道是什么。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。