如何在 Unity 中使用 Xbox 控制器

Unity Engine 是一个强大的游戏开发平台,提供用于集成各种输入设备的综合工具。在广泛使用的设备中,Xbox 控制器因其符合人体工程学的设计和广泛的功能而脱颖而出。本教程将阐明将 Xbox 控制器集成到 Unity 项目中,详细介绍访问输入数据并回答与此集成相关的常见查询的过程。

1. 设置开发环境

  • 确保已安装最新版本的 Unity
  • 将 Xbox 控制器 连接到计算机。确保驱动程序是最新的并且系统可以识别控制器。

2. 访问输入管理器

要修改和查看当前输入:

  • 打开Unity。
  • 导航至 'Edit' -> 'Project Settings' -> 'Input Manager'。
  • 在输入管理器中,列出了多个轴和按钮。对于 Xbox 控制器,某些默认轴和按钮(例如 "Horizontal" 和 "Vertical")对应于操纵杆的移动。

3. 配置 Xbox 控制器输入

出于本教程的目的,我们将设置 'A' 按钮和左侧 'Joystick'

  • 在输入管理器中展开 'Axes'
  • 要添加新输入,请右键单击任何现有轴并复制它。将其重命名为 "A_Button"。

A_按钮配置:

  • 'Type' 设置为 'Joystick Axis'
  • 为 A 按钮选择正确的 'Axis'。对于 Xbox 控制器,这通常是第 0 轴。
  • 对于 'Joy Num',请选择 'Get Motion from all Joysticks',除非有特定的操纵杆可供使用。

左操纵杆配置:

  • 复制另一个轴并将其重命名为 "JoystickHorizontal" 以进行水平移动。将 'Type' 设置为 'Joystick Axis'。将 'Axis' 设置为 'X axis'
  • 再次复制并将其重命名为 "JoystickVertical" 以进行垂直移动。将 'Type' 设置为 'Joystick Axis'。将 'Axis' 设置为 'Y axis'

4. 访问脚本中的控制器输入

  • 要在 Unity 脚本中利用 Xbox 控制器的 输入,请使用 'Input' 类。
using UnityEngine;

public class XboxControllerInput : MonoBehaviour
{
    void Update()
    {
        float horizontal = Input.GetAxis("JoystickHorizontal");
        float vertical = Input.GetAxis("JoystickVertical");
        bool aButtonPressed = Input.GetButtonDown("A_Button");

        // Implement desired actions based on the input values
    }
}

常见问题解答:

  1. 为什么 Unity 无法识别来自 Xbox 控制器的输入?:Xbox 控制器 可能未正确连接,或者驱动程序可能未更新。确保系统识别控制器。此外,验证输入管理器设置是否对应于正确的操纵杆编号和轴。
  2. 如何区分多个连接的 Xbox 控制器?:在输入管理器中,'Joy Num' 允许选择特定的操纵杆编号。为每个 Xbox 控制器分配一个唯一的编号以区分它们。
  3. 可以在 Unity 中为 Xbox 控制器制作自定义按钮映射吗?:当然可以。输入管理器有助于自定义按钮映射。只需复制现有的轴/按钮,将其重命名,并相应地调整设置即可。

结论

将 Xbox 控制器集成到 Unity 项目中可以丰富游戏体验,为玩家提供熟悉且直观的控制。通过了解输入管理器和输入类,可以将各种控制器功能无缝合并到任何Unity游戏中。