Unity 6.3
0 онлайн 77 гостей 3 в системе
Вход

Обнаружение контроллеров Game

Unity включает в проект фреймворк Game Controller только в том случае, если скрипт в проекте ссылается на Input.GetJoystickNames. Если он доступен, Unity iOS Runtime динамически загружает фреймворк.

Чтобы получить список всех доступных контроллеров, вызовите Input.GetJoystickNames. Вы можете повторно проверить этот список в любое время, чтобы определить, были ли контроллеры подключены или отсоединены.

Вы можете вызвать это API для определения типа подключенного контроллера. Имя следует схеме: [$profile_type,$connection_type] joystick $number by $model. $profile_type может быть либо базовым или расширенным, и $connection_type либо проводным или беспроводным. Когда Unity обнаруживает хотя бы один контроллер, вы можете либо отключить сенсорные элементы управления на экране, либо изменить их, чтобы дополнить ввод контроллера.

Пример: Обнаружение подключенных контроллеров Game

Следующий пример кода проверяет, подключены ли к устройству какие-либо контроллеры.

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());
    }
}

Дополнительные ресурсы: