Sådan bruger du Xbox Controller i Unity

Unity Engine, en robust platform til spiludvikling, tilbyder omfattende værktøjer til at integrere forskellige input-enheder. Blandt de meget brugte enheder skiller Xbox-controlleren sig ud for sit ergonomiske design og omfattende funktionaliteter. Denne tutorial vil belyse integrationen af ​​en Xbox-controller i Unity-projekter, detaljerede processen med at få adgang til inputdata og besvare almindelige forespørgsler relateret til denne integration.

1. Opsætning af udviklingsmiljøet

  • Sørg for, at den seneste version af Unity er installeret.
  • Tilslut Xbox-controlleren til computeren. Sørg for, at driverne er opdaterede, og at systemet genkender controlleren.

2. Adgang til Input Manager

For at ændre og se de aktuelle input:

  • Åben Unity.
  • Naviger til 'Edit' -> 'Project Settings' -> 'Input Manager'.
  • I Input Manager er flere akser og knapper opført. For Xbox-controllere svarer visse standardakser og knapper som "Horizontal" og "Vertical" til joystickets bevægelser.

3. Konfiguration af Xbox Controller-indgangene

Til formålet med denne øvelse, lad os konfigurere 'A'-knappen og den venstre 'Joystick'.

  • Udvid 'Axes' i Input Manager.
  • For at tilføje et nyt input skal du højreklikke på en eksisterende akse og duplikere den. Omdøb dette til "A_Button".

A_Button Konfiguration:

  • Indstil 'Type' til 'Joystick Axis'.
  • Vælg den korrekte 'Axis' for A-knappen. For Xbox-controllere er dette typisk den 0. akse.
  • For 'Joy Num' skal du vælge 'Get Motion from all Joysticks', medmindre der er et specifikt joystick beregnet til brug.

Venstre joystick konfiguration:

  • Dupliker en anden akse og omdøb den til "JoystickHorizontal" for den vandrette bevægelse. Indstil 'Type' til 'Joystick Axis'. Indstil 'Axis' til 'X axis'.
  • Dupliker endnu en gang, og omdøb den til "JoystickVertical" for den lodrette bevægelse. Indstil 'Type' til 'Joystick Axis'. Indstil 'Axis' til 'Y axis'.

4. Adgang til controllerinput i scripts

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
    }
}
  • Vedhæft dette script til ethvert relevant GameObject for at hente inputværdier og manipulere dem efter behov.

Svar på almindelige spørgsmål:

  1. Hvorfor genkendes input fra Xbox-controlleren ikke i Unity?: Xbox-controller er muligvis ikke tilsluttet korrekt, eller driverne er muligvis ikke opdateret. Sørg for, at systemet genkender controlleren. Derudover skal du kontrollere, at Input Manager-indstillingerne svarer til det korrekte joysticknummer og -akse.
  2. Hvordan skelner man mellem flere tilsluttede Xbox-controllere?: I Input Manager tillader 'Joy Num' valg af et specifikt joysticknummer. Tildel hver Xbox-controller et unikt nummer for at skelne mellem dem.
  3. Kan tilpassede knaptilknytninger laves til Xbox-controlleren i Unity?: Absolut. Input Manager letter tilpassede knaptilknytninger. Dupliker blot en eksisterende akse/knap, omdøb den og juster indstillingerne i overensstemmelse hermed.

Konklusion

Integrering af Xbox-controlleren i Unity-projekter beriger gameplay-oplevelserne og giver spillerne velkendte og intuitive kontroller. Ved at forstå Input Manager og Input-klassen kan en bred vifte af controller-funktionaliteter problemfrit integreres i ethvert Unity-spil.

Foreslåede artikler
Sådan bruger du nyt HDRP-vandsystem i Unity
Zone Controller Pro - Unity Asset Store-pakke
FPC Swimmer - Et omfattende enhedsaktiv til fordybende vandmiljøer
Weather Maker - Løft enhedsmiljøer til nye højder
Raycast og projektilbaseret Gun Shooting Script for Unity
Sådan konfigurerer du joystick-controlleren til bevægelse i enhed
Top Unity Assets fra Asset Store