unity 最小后监听键盘输入

当Untiy最小化后,游戏窗口不会立刻失去焦点,此时依然可以使用Input来获取按键,但是点击其他窗口后,就会失去焦点,此时系统会把按键输入分配到其他窗口里,此时要用windowsAPI获取按键输入,应对两种情况的代如下

csharp 复制代码
  [DllImport("user32.dll")]
  public static extern short GetAsyncKeyState(int vKey);
  public const int VK_3 = 0x33; // 数字键3的虚拟键码
  public const int VK_NUMPAD3 = 0x63; // 数字键3的虚拟键码
private void Update()
{
    if (!Application.isFocused)
    {
       //如果点了桌面或别的窗口,会触发windowsapi
        if (GetAsyncKeyState(VK_3) != 0|| GetAsyncKeyState(VK_NUMPAD3) != 0)
        {
            RestoreWIndow();//恢复窗口
        }
    }
    else  //最小化后,如果没有在别的地方点击鼠标,此时untiy还没有失去焦点,直接按3会触发Untiy输入
    {
        if (Input.GetKeyDown(KeyCode.Alpha3) || Input.GetKeyDown(KeyCode.Keypad3))
        {
            RestoreWIndow();//恢复窗口
        }
    }
}
相关推荐
小赖同学啊19 分钟前
物联网中的Unity/Unreal引擎集成:数字孪生与可视化控制
物联网·unity·游戏引擎
Zlzxzw4 小时前
使用unity创建项目,进行动画制作
unity·游戏引擎
X_StarX8 小时前
【Unity笔记01】基于单例模式的简单UI框架
笔记·ui·unity·单例模式·游戏引擎·游戏开发·大学生
九班长8 小时前
Golang服务端处理Unity 3D游戏地图与碰撞的详细实现
3d·unity·golang
ysn1111111 小时前
NGUI实现反向定位到层级面板结点
unity
Thomas_YXQ18 小时前
Unity3D DOTS场景流式加载技术
java·开发语言·unity
KhalilRuan1 天前
Unity-MMORPG内容笔记-其一
unity·游戏引擎
向宇it1 天前
【unity游戏开发——网络】网络游戏通信方案——强联网游戏(Socket长连接)、 弱联网游戏(HTTP短连接)
网络·http·游戏·unity·c#·编辑器·游戏引擎
切韵11 天前
Unity编辑器扩展:UI绑定复制工具
ui·unity·编辑器
11 天前
Lua复习之何为闭包
开发语言·unity·游戏引擎·lua·交互