Unity在Editor下获取键盘等设备Input事件

前言

最近在做一个编辑器。需要自己设置快捷键的需求。但是经过测试。在Editor中并不能获取Input的事件。而用系统的[MenuItem("")]却必须要是静态的。而我们的编辑器脚本都为静态肯定也不现实。

所以需要自己获取设备输入事件。而input并没用。

1

解决方案

用Event事件能获取到所有设备输入信息。

使用方法如下

    bool isSpaceDown;
    /// <summary> 设置快捷操作 </summary>
    void SetCurrent()
    {
        Event e = Event.current;
        if (e.isKey)
        {
            if(e.keyCode == KeyCode.Space)
            {
                isSpaceDown = e.type == EventType.keyUp ? false : true;
            }
            if (e.type == EventType.keyUp)
            {
                if (e.keyCode == KeyCode.A && isSpaceDown)
                 {
                     Debug.LogError("快捷操作:重置");
                 }
                 else if(e.keyCode == KeyCode.Return)
                 {
                     Debug.LogError("快捷操作:暂停");
                 }
                else if (e.keyCode == KeyCode.S && isSpaceDown)
                 {
                     Debug.LogError("快捷操作:保存");
                 }
            }
            else if(e.type == EventType.keyDown)
            {
                
                if (e.keyCode == KeyCode.UpArrow)
                {
                    Debug.LogError("快捷操作:加快播放速率");
                }
                else if (e.keyCode == KeyCode.DownArrow)
                {
                    Debug.LogError("快捷操作:减低播放速率");
                }
            }
        }
    }

 

 

本文链接:

https://bobsong.cn/945.html
1 + 9 =
快来做第一个评论的人吧~