Slik bruker du Xbox-kontrolleren i Unity

Unity Engine, en robust plattform for spillutvikling, tilbyr omfattende verktøy for å integrere ulike inndataenheter. Blant de mye brukte enhetene skiller Xbox-kontrolleren seg ut for sin ergonomiske design og omfattende funksjonalitet. Denne opplæringen vil belyse integreringen av en Xbox-kontroller i Unity-prosjekter, og detaljere prosessen med å få tilgang til inndata og svare på vanlige spørsmål knyttet til denne integrasjonen.

1. Sette opp utviklingsmiljøet

  • Sørg for at den nyeste versjonen av Unity er installert.
  • Koble Xbox-kontrolleren til datamaskinen. Sørg for at driverne er oppdatert og at systemet gjenkjenner kontrolleren.

2. Åpne Input Manager

For å endre og vise gjeldende innganger:

  • Åpne Unity.
  • Naviger til 'Edit' -> 'Project Settings' -> 'Input Manager'.
  • I Input Manager er flere akser og knapper oppført. For Xbox-kontrollere tilsvarer visse standardakser og knapper som "Horizontal" og "Vertical" joystick-bevegelsene.

3. Konfigurere Xbox-kontrollerinngangene

For formålet med denne opplæringen, la oss sette opp 'A'-knappen og den venstre 'Joystick'.

  • Utvid 'Axes' i Input Manager.
  • For å legge til en ny inngang, høyreklikk på en eksisterende akse og duplisere den. Gi nytt navn til "A_Button".

A_Button Configuration:

  • Sett 'Type' til 'Joystick Axis'.
  • Velg riktig 'Axis' for A-knappen. For Xbox-kontrollere er dette vanligvis den 0. aksen.
  • For 'Joy Num', velg 'Get Motion from all Joysticks' med mindre det er en bestemt joystick beregnet for bruk.

Venstre styrespakkonfigurasjon:

  • Dupliser en annen akse og gi den nytt navn til "JoystickHorizontal" for den horisontale bevegelsen. Still inn 'Type' til 'Joystick Axis'. Still inn 'Axis' til 'X axis'.
  • Dupliser en gang til og gi det nytt navn til "JoystickVertical" for den vertikale bevegelsen. Still inn 'Type' til 'Joystick Axis'. Still inn 'Axis' til 'Y axis'.

4. Få tilgang til kontrollinndata i skript

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
    }
}
  • Fest dette skriptet til et hvilket som helst relevant GameObject for å hente inngangsverdier og manipulere dem etter behov.

Svar på vanlige spørsmål:

  1. Hvorfor gjenkjennes ikke inngangene fra Xbox-kontrolleren i Unity?: Xbox-kontrolleren er kanskje ikke riktig tilkoblet eller driverne er kanskje ikke oppdatert. Sørg for at systemet gjenkjenner kontrolleren. I tillegg må du kontrollere at Input Manager-innstillingene samsvarer med riktig styrespaknummer og akse.
  2. Hvordan skille mellom flere tilkoblede Xbox-kontrollere?: I Input Manager tillater 'Joy Num' valg av et spesifikt styrespaknummer. Tildel hver Xbox-kontroller et unikt nummer for å skille mellom dem.
  3. Kan tilpassede knappetilordninger lages for Xbox-kontrolleren i Unity?: Absolutt. Input Manager forenkler tilpassede knappetilordninger. Bare dupliser en eksisterende akse/knapp, gi den nytt navn og juster innstillingene deretter.

Konklusjon

Å integrere Xbox-kontrolleren i Unity-prosjekter beriker spillopplevelsen, og gir spillerne kjente og intuitive kontroller. Ved å forstå Input Manager og Input-klassen kan et bredt spekter av kontrollerfunksjonaliteter sømløst integreres i ethvert Unity-spill.

Foreslåtte artikler
Slik bruker du nytt HDRP-vannsystem i Unity
FPC Swimmer - En omfattende enhetsressurs for oppslukende vannmiljøer
Weather Maker - Løft enhetsmiljøer til nye høyder
Raycast og prosjektilbasert pistolskyteskript for Unity
Topp Unity Assets fra Asset Store
2D-myntsamling i enhet
Målindikator i Unity