Version: 2022.3

Input.GetJoystickNames

切换到手册
public static string[] GetJoystickNames ();

返回

string[] 返回游戏杆和游戏手柄设备名称的数组。

描述

获取与在输入管理器中配置的轴的索引对应的输入设备名称的列表。

返回的字符串来自操作系统报告的连接设备的“友好名称”。也就是说,名称不是固定的,很可能会因设备、驱动程序和操作系统本身的差异而有所不同。

这些字符串可用在输入配置屏幕中 - 这样,您可以显示更有意义的名称,例如“Logitech WingMan”,而不是显示“Joystick 1”这样的标签。 要从不同的游戏杆读取值,您需要在 Input Manager 中为要支持的游戏杆编号分配相应的轴。

该数组中游戏杆的位置对应于游戏杆编号,即该数组的位置 0 中的名称为 将数据输入到 Input Manager 中的“Joystick 1”的游戏杆,位置 1 中的名称对应于“Joystick 2”,依此类推。 注意,如果没有为某游戏杆编号连接任何设备,则数组中的这些条目可能为空白。

using UnityEngine;

public class Example : MonoBehaviour { // Prints a joystick name if movement is detected.

void Update() { // requires you to set up axes "Joy0X" - "Joy3X" and "Joy0Y" - "Joy3Y" in the Input Manager for (int i = 0; i < 4; i++) { if (Mathf.Abs(Input.GetAxis("Joy" + i + "X")) > 0.2 || Mathf.Abs(Input.GetAxis("Joy" + i + "Y")) > 0.2) { Debug.Log(Input.GetJoystickNames()[i] + " is moved"); } } } }