即使连接了控制器,UWP Gamepad.Gamepads 也是空的

Posted

技术标签:

【中文标题】即使连接了控制器,UWP Gamepad.Gamepads 也是空的【英文标题】:UWP Gamepad.Gamepads is empty even though a controller is connected 【发布时间】:2018-02-26 21:17:25 【问题描述】:

我目前正在开发一个 UWP 应用程序,我希望能够从无线 xbox 控制器获取输入,但是,每当我尝试在我的代码中访问它时,我都会收到错误 System.InvalidOperationException: 'Sequence contains no elements'

我知道控制器已连接,因为它显示在我的蓝牙设备中,我可以在 Steam Big Picture 和游戏中毫无问题地使用它。我正在尝试使用此代码访问控制器:

var controller = Gamepad.Gamepads.First();
var reading = controller.GetCurrentReading();

我是否遗漏了什么或做错了什么?

【问题讨论】:

【参考方案1】:

我希望能够从无线 xbox 控制器获取输入,但是,每当我尝试在代码中访问它时,都会收到错误 System.InvalidOperationException: 'Sequence contains no elements'。

来自official document:

游戏手柄列表最初是空的,即使游戏手柄已经连接,也不会列出游戏手柄。稍后,这将返回完整的游戏手柄列表。

对于这种情况,您可以通过Gamepad.GamepadAdded 事件列出所有连接的游戏手柄。

public MainPage()

    this.InitializeComponent();
    Gamepad.GamepadAdded += Gamepad_GamepadAdded;


private void Gamepad_GamepadAdded(object sender, Gamepad e)

    var controller = Gamepad.Gamepads?.First(); 
    var reading = controller.GetCurrentReading();

【讨论】:

我想从文档中添加更多信息:游戏手柄支持任何经过 Xbox One 认证或与 Xbox 360 兼容的游戏手柄。

以上是关于即使连接了控制器,UWP Gamepad.Gamepads 也是空的的主要内容,如果未能解决你的问题,请参考以下文章

UWP Xaml文本块数据绑定 - 即使属性已更新,UI也不会更新

React native with UWP - 如何设置 react-native UWP 环境?

UWP 商店服务 SDK 广告

自定义控制按钮 C# UWP

UWP开发入门(十六)——常见的内存泄漏的原因

UWP 创建 *** 连接