这是我的代码:
public class RoEditorWindow : EditorWindow
{
private static RoEditorWindow win;
[MenuItem("Window/Ro Editor Window %g")]
static void St()
{
if (!win)
{
win = EditorWindow.GetWindow<RoEditorWindow>();
}
else
{
Debug.Log("Run focus");
win.Focus();
}
}
private void OnFocus()
{
Debug.Log("win focus");
}
}
查看我的gif图像,如果我使用鼠标单击其他胜利并单击我的胜利,则OnFocus可以使用,但是如果我使用快捷方式“ ctrl + g”,则将执行代码Debug.Log("Run focus")
,但不会触发#OnFocus(参见我的gif统一编辑器控制台输出)
不好的是,如果win#focus无法聚焦,RoEditorWindow#OnGUI键侦听器将无法工作
那么如何在单击clickedwindow之类的脚本中聚焦editorwindow
我的统一编辑器版本是linux中的2017.4.10
答案 0 :(得分:0)
OnFocus是当窗口获得焦点时调用的事件。每当您调用Focus时都不会调用它。在您的示例中,调用Focus时窗口已具有焦点,因此不会调用OnFocus。