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();//恢复窗口
        }
    }
}
相关推荐
沉默金鱼12 小时前
Unity实用技能-格式化format文字
ui·unity·游戏引擎
jyy_9912 小时前
通过网页地址打开unity的exe程序,并传参
unity
qq_205279051 天前
Unity TileMap 使用经验
unity·游戏引擎
心灵宝贝1 天前
Mac Unity 2018.dmg游戏工具 安装步骤 简单易懂教程(附安装包)
macos·unity·游戏引擎
TO_ZRG1 天前
Unity SDK 通过 Registry 分发及第三方依赖处理指南
unity·游戏引擎
龙智DevSecOps解决方案2 天前
Perforce《2025游戏技术现状报告》Part 1:游戏引擎技术的广泛影响以及生成式AI的成熟之路
人工智能·unity·游戏引擎·游戏开发·perforce
WarPigs2 天前
Unity编辑器开发笔记
unity·编辑器·excel
霜绛3 天前
Unity:lua热更新(三)——Lua语法(续)
unity·游戏引擎·lua
世洋Blog3 天前
更好的利用ChatGPT进行项目的开发
人工智能·unity·chatgpt
evolution_language3 天前
Unity场景(Scene)的注意事项和易错点
unity·游戏引擎·scene