当前位置:首页|资讯

游戏手柄支持

作者:unity_某某师_高锦锦发布时间:2024-09-13

游戏手柄被定义为拥有两个摇杆、一个方向键(D-pad)和四个正面按钮的设备。此外,游戏手柄通常还具有两个肩部按钮和两个触发按钮,并且大多数手柄还在中间配有两个按钮。

尽管游戏手柄可能包含额外的控件(如陀螺仪),但所有手柄都至少包含上述的最小控件集。

游戏手柄支持保证在不同平台和硬件之间,控件的正确位置和功能保持一致。例如,无论在哪个平台上使用,PS4 DualShock 控制器的布局应始终相同。

注意事项:

  • 通用 HID 游戏手柄不会作为 Gamepad 设备呈现,而是被创建为通用摇杆。这是因为输入系统无法在 HID 层面保证按钮和轴的正确映射。

  • 如果想使用游戏手柄控制鼠标输入,可以从包管理器中的 Input System 包安装 Gamepad Mouse Cursor 示例,展示如何设置游戏手柄输入驱动虚拟鼠标光标。

控件

每个游戏手柄都具有以下控件:

控件类型描述leftStickStickControl左侧摇杆,归一化的二维运动向量,包含上下左右按钮。rightStickStickControl右侧摇杆,归一化的二维运动向量,包含上下左右按钮。dpadDpadControl方向键。buttonNorthButtonControl正面上方按钮(Xbox:Y,PlayStation:三角形)。buttonSouthButtonControl正面下方按钮(Xbox:A,PlayStation:叉)。buttonWestButtonControl正面左侧按钮(Xbox:X,PlayStation:方形)。buttonEastButtonControl正面右侧按钮(Xbox:B,PlayStation:圆形)。leftShoulderButtonControl左肩按钮。rightShoulderButtonControl右肩按钮。leftTriggerButtonControl左触发按钮。rightTriggerButtonControl右触发按钮。startButtonButtonControl开始按钮。selectButtonButtonControl选择按钮。leftStickButtonButtonControl按下左摇杆时的按钮。rightStickButtonButtonControl按下右摇杆时的按钮。

注意: 按钮也是全浮点轴,例如左、右触发按钮可以作为按钮和浮点轴使用。

还可以使用索引器和 GamepadButton 枚举访问游戏手柄按钮:

游戏手柄支持 Xbox 和 PS4 风格的按钮别名,例如:

死区

死区用于防止摇杆的轻微偏移导致误操作。可以在摇杆上添加死区处理器,例如:

轮询

在 Windows(仅限 XInput 控制器)、UWP 和 Switch 上,Unity 显式轮询游戏手柄而不是通过事件更新。可以手动控制轮询频率,默认频率为 60Hz:

震动

Gamepad 类实现了 IDualMotorRumble 接口,允许控制左右马达的速度:

注意: 仅支持某些设备/操作系统组合的震动功能,例如 PS4、Xbox、Switch 控制器在其各自的主机上连接时支持震动。

暂停、恢复和停止触觉反馈

IDualMotorRumble 基于 IHaptics,可以使用 PauseHapticsResumeHapticsResetHaptics 方法来分别暂停、恢复或停止触觉反馈。

PlayStation 控制器

Unity 支持多种 PlayStation 控制器,例如 DualShock4GamepadHID(在桌面通过 HID 连接的 DualShock 4 控制器),支持在 macOS、Windows 和 Linux 上使用。

可以通过 SetLightBarColor(Color) 设置 DualShock 控制器的光条颜色:

注意: 由于 USB 驱动和硬件的限制,只能同时处理一个输入输出控制命令(IOCTL)。

Xbox 控制器

Unity 支持多种 Xbox 控制器,通过 XInputController 类实现(派生自 Gamepad)。在 Windows 和 UWP 上,Unity 使用 XInput API 连接 Xbox 兼容控制器,例如 Xbox One 或 Xbox 360 控制器。

Switch 控制器

Unity 支持 Switch Pro 控制器通过 SwitchProControllerHID 类在桌面上实现基本游戏手柄功能。当前仅支持通过蓝牙连接。

注意: Switch Joy-Con 目前在桌面不受支持。

光标控制

可以通过 VirtualMouseInput 组件让游戏手柄或摇杆控制硬件或软件光标。



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1