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();//恢复窗口
        }
    }
}
相关推荐
万兴丶2 分钟前
Unity用C#完成抖音小游戏接入引力引擎(Gravity Engine)完整指南,一篇文章讲清楚!
unity·c#·游戏引擎·抖音
WarrenMondeville2 小时前
4.Unity面向对象-接口隔离原则
java·unity·接口隔离原则
WarrenMondeville4 小时前
3.Unity面向对象-里氏替换原则
unity·游戏引擎·里氏替换原则
WarrenMondeville5 小时前
5.Unity面向对象-依赖倒置原则
unity·设计模式·依赖倒置原则
万兴丶5 小时前
Unity 用AI自动开发游戏近一年----最新Cursor使用心得
人工智能·游戏·unity·cursor
张老师带你学17 小时前
UnityVR弯曲UI
科技·游戏·unity·游戏引擎·模型
张老师带你学19 小时前
unity作业,街角小场景
科技·游戏·unity·游戏引擎·模型
mxwin21 小时前
Unity Shader LOD:动态 Shader 等级切换技术详解
unity·游戏引擎·shader
ALex_zry1 天前
C++高性能日志与监控系统设计
c++·unity·wpf
魔士于安1 天前
Unity太空战舰完整工程,包含战损,实时战损
游戏·unity·游戏引擎·贴图·模型