版本:Unity 6 (6000.0)
语言:英语
游戏控制器支持
处理游戏控制器输入

检测游戏控制器

只有当项目中的脚本引用 Input.GetJoystickNames 时,Unity 才会在项目中包含 游戏控制器用于控制游戏中的对象和角色的设备。
参见 术语表
框架。如果可用,Unity iOS 运行时会动态加载该框架。

要获取所有可用控制器的列表,请调用 Input.GetJoystickNames。您可以随时重新检查此列表,以检测是否已连接或断开控制器。

您可以调用此 API 来检测连接的控制器类型。名称遵循以下模式:[$profile_type,$connection_type] joystick $number by $model$profile_type 可以是 basicextended$connection_type 可以是 wiredwireless。当 Unity 检测到至少一个控制器时,您可以禁用屏幕上的触摸控件或对其进行修改以补充控制器输入。

示例:检测连接的游戏控制器

以下代码示例检查是否有任何控制器连接到设备。

using System.Collections;
using UnityEngine;

public class GameControllers : MonoBehaviour
{
    private bool connected = false;

    IEnumerator CheckForControllers() {
        while (true) {
            var controllers = Input.GetJoystickNames();

            if (!connected && controllers.Length > 0) {
                connected = true;
                Debug.Log("Connected");
            
            } else if (connected && controllers.Length == 0) {         
                connected = false;
                Debug.Log("Disconnected");
            }

            yield return new WaitForSeconds(1f);
        }
    }

    void Awake() {
        StartCoroutine(CheckForControllers());
    }
}

其他资源

游戏控制器支持
处理游戏控制器输入