如何让Unity新输入系统在编辑器失焦时正常工作?
解决Unity新输入系统编辑器失焦时无法接收手柄输入的问题
检查输入系统后台行为设置
打开Project Settings → Input System Package,把Background Behavior设为Process Input in Background。这个设置和Application.runInBackground=true是配套生效的,两者都开才能让后台输入正常工作。确认播放模式输入行为
同样在Input System Package设置面板里,将Play Mode Input Behavior改成Send Input to Game。这个选项决定编辑器播放时输入是发给编辑器还是游戏实例,选这个就能保证即使编辑器失焦,输入也会传给正在运行的游戏。代码层面强制配置(可选)
如果上述设置没起作用,可以在代码里手动锁定配置,避免项目设置被意外改动:using UnityEngine.InputSystem; void Start() { InputSystem.settings.backgroundBehavior = InputSettings.BackgroundBehavior.ProcessInputInBackground; Application.runInBackground = true; }排查手柄驱动与系统权限
部分手柄(比如Xbox手柄)需要系统层面允许后台访问输入。可以去Windows设置的「游戏→游戏控制器」里确认权限,或者把手柄驱动更到最新版本试试。测试独立构建版本
编辑器环境偶尔会有输入焦点的特殊限制,建议先打包一个独立测试版,看看后台运行时能不能接收手柄输入。如果独立版本正常,那大概率是编辑器的限制,可以尝试重启Unity或者把输入系统包更到最新稳定版。
内容的提问来源于stack exchange,提问作者aybe
相关产品推荐
相关产品推荐

