unity EditorWindow#Focus无法触发OnFocus

时间:2018-10-13 09:19:19

标签: c# unity3d

这是我的代码:

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统一编辑器控制台输出) enter image description here

不好的是,如果win#focus无法聚焦,RoEditorWindow#OnGUI键侦听器将无法工作

那么如何在单击clickedwindow之类的脚本中聚焦editorwindow

我的统一编辑器版本是linux中的2017.4.10

1 个答案:

答案 0 :(得分:0)

OnFocus是当窗口获得焦点时调用的事件。每当您调用Focus时都不会调用它。在您的示例中,调用Focus时窗口已具有焦点,因此不会调用OnFocus。