Come utilizzare il controller Xbox in Unity

Unity Engine, una solida piattaforma per lo sviluppo di giochi, offre strumenti completi per l'integrazione di vari dispositivi di input. Tra i dispositivi più utilizzati, il controller Xbox si distingue per il suo design ergonomico e le ampie funzionalità. Questo tutorial illustrerà l'integrazione di un controller Xbox nei progetti Unity, descrivendo in dettaglio il processo di accesso ai dati di input e rispondendo alle domande comuni relative a questa integrazione.

1. Impostazione dell'ambiente di sviluppo

  • Assicurarsi che l'ultima versione di Unity sia installata.
  • Collega il controller Xbox al computer. Assicurarsi che i driver siano aggiornati e che il sistema riconosca il controller.

2. Accesso a Gestione input

Per modificare e visualizzare gli ingressi attuali:

  • Apri Unity.
  • Passare a 'Edit' -> 'Project Settings' -> 'Input Manager'.
  • Nell'Input Manager sono elencati più assi e pulsanti. Per i controller Xbox, alcuni assi e pulsanti predefiniti come "Horizontal" e "Vertical" corrispondono ai movimenti del joystick.

3. Configurazione degli ingressi del controller Xbox

Ai fini di questo tutorial, impostiamo il pulsante 'A' e quello sinistro 'Joystick'.

  • Espandi 'Axes' in Gestione input.
  • Per aggiungere un nuovo input, fare clic con il pulsante destro del mouse su qualsiasi asse esistente e duplicarlo. Rinominarlo in "A_Button".

A_Configurazione pulsante:

  • Imposta 'Type' su 'Joystick Axis'.
  • Scegli il 'Axis' corretto per il pulsante A. Per i controller Xbox, questo è in genere l'asse 0.
  • Per 'Joy Num', scegli 'Get Motion from all Joysticks' a meno che non sia previsto un joystick specifico per l'uso.

Configurazione del joystick sinistro:

  • Duplica un altro asse e rinominalo "JoystickHorizontal" per il movimento orizzontale. Imposta 'Type' su 'Joystick Axis'. Imposta 'Axis' su 'X axis'.
  • Duplicalo ancora una volta e rinominalo "JoystickVertical" per il movimento verticale. Imposta 'Type' su 'Joystick Axis'. Imposta 'Axis' su 'Y axis'.

4. Accesso all'input del controller negli script

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
    }
}
  • Allega questo script a qualsiasi GameObject pertinente per recuperare i valori di input e manipolarli come richiesto.

Risposte alle domande comuni:

  1. Perché gli input dal controller Xbox non vengono riconosciuti in Unity?: controller Xbox potrebbe non essere collegato correttamente oppure i driver potrebbero non essere aggiornati. Assicurarsi che il sistema riconosca il controller. Inoltre, verificare che le impostazioni di Input Manager corrispondano al numero e all'asse del joystick corretti.
  2. Come distinguere tra più controller Xbox collegati?: in Input Manager, 'Joy Num' consente la selezione di un numero di joystick specifico. Assegna a ciascun controller Xbox un numero univoco per distinguerli.
  3. È possibile creare mappature personalizzate dei pulsanti per il controller Xbox in Unity?: Assolutamente. L'Input Manager facilita la mappatura dei pulsanti personalizzati. Basta duplicare un asse/pulsante esistente, rinominarlo e regolare le impostazioni di conseguenza.

Conclusione

L'integrazione del controller Xbox nei progetti Unity arricchisce l'esperienza di gioco, garantendo ai giocatori controlli familiari e intuitivi. Comprendendo l'Input Manager e la classe Input, è possibile incorporare perfettamente un'ampia gamma di funzionalità del controller in qualsiasi gioco Unity.

Articoli suggeriti
Come impostare il controller joystick per il movimento in Unity
Zone Controller Pro - Pacchetto Unity Asset Store
Come utilizzare il nuovo sistema idrico HDRP in Unity
Le migliori risorse Unity dall'Asset Store
Script per creare un interruttore della luce in Unity
Collezione di monete 2D in unità
Come generare oggetti con un clic del mouse