【问题标题】:unity EditorWindow#Focus cannot trigger OnFocusunity EditorWindow#Focus 无法触发 OnFocus
【发布时间】:2018-10-13 09:19:18
【问题描述】:

这是我的代码:

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 按键监听器将无法工作

那么如何在脚本中聚焦编辑器窗口,例如单击编辑器窗口

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

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

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

    【讨论】:

    • 关键点不是 OnFocus 没有被调用,关键是当我使用 win#focus 的时候,我在 win#OnGUI 中的关键监听器仍然不能像没有焦点一样工作,我希望做关键监听器工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 2013-03-01
    • 2015-06-30
    • 1970-01-01
    • 2021-08-08
    相关资源
    最近更新 更多