Hur man använder Xbox Controller i Unity

Unity Engine, en robust plattform för spelutveckling, erbjuder omfattande verktyg för att integrera olika inmatningsenheter. Bland de mycket använda enheterna utmärker sig Xbox controller för sin ergonomiska design och omfattande funktionalitet. Den här handledningen kommer att belysa integrationen av en Xbox-kontroller i Unity-projekt, och beskriver processen för att komma åt indata och svara på vanliga frågor relaterade till denna integration.

1. Ställa in utvecklingsmiljön

  • Se till att den senaste versionen av Unity är installerad.
  • Anslut Xbox-kontrollern till datorn. Se till att drivrutinerna är uppdaterade och att systemet känner igen styrenheten.

2. Åtkomst till Input Manager

För att ändra och visa aktuella ingångar:

  • Öppna Unity.
  • Navigera till 'Edit' -> 'Project Settings' -> 'Input Manager'.
  • I Input Manager listas flera axlar och knappar. För Xbox-kontroller motsvarar vissa standardaxlar och knappar som "Horizontal" och "Vertical" joystickens rörelser.

3. Konfigurera Xbox Controller-ingångarna

För syftet med denna handledning, låt oss ställa in 'A'-knappen och den vänstra 'Joystick'.

  • Expandera 'Axes' i Input Manager.
  • För att lägga till en ny ingång, högerklicka på en befintlig axel och duplicera den. Byt namn på detta till "A_Button".

A_Button Configuration:

  • Ställ in 'Type' till 'Joystick Axis'.
  • Välj rätt 'Axis' för A-knappen. För Xbox-kontroller är detta vanligtvis den 0:e axeln.
  • För 'Joy Num', välj 'Get Motion from all Joysticks' om det inte finns en specifik joystick avsedd att användas.

Vänster joystick-konfiguration:

  • Duplicera en annan axel och döp om den till "JoystickHorizontal" för den horisontella rörelsen. Ställ in 'Type' till 'Joystick Axis'. Ställ in 'Axis' till 'X axis'.
  • Duplicera en gång till och döp om det till "JoystickVertical" för den vertikala rörelsen. Ställ in 'Type' till 'Joystick Axis'. Ställ in 'Axis' till 'Y axis'.

4. Få åtkomst till kontrollindata 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
    }
}
  • Bifoga detta skript till alla relevanta GameObject för att hämta indatavärden och manipulera dem efter behov.

Svar på vanliga frågor:

  1. Varför känns inte ingångarna från Xbox-kontrollern igen i Unity?: Xbox-kontrollern kanske inte är korrekt ansluten eller så är drivrutinerna inte uppdaterade. Se till att systemet känner igen styrenheten. Kontrollera dessutom att Input Manager-inställningarna motsvarar rätt styrspaksnummer och axel.
  2. Hur skiljer man på flera anslutna Xbox-kontroller?: I Input Manager tillåter 'Joy Num' val av ett specifikt joysticknummer. Tilldela varje Xbox-kontroller ett unikt nummer för att skilja dem åt.
  3. Kan anpassade knappmappningar göras för Xbox-kontrollern i Unity?: Absolut. Input Manager underlättar anpassade knappmappningar. Duplicera bara en befintlig axel/knapp, byt namn på den och justera inställningarna därefter.

Slutsats

Att integrera Xbox-kontrollern i Unity-projekt berikar spelupplevelsen och ger spelarna bekanta och intuitiva kontroller. Genom att förstå Input Manager och Input-klassen kan ett brett utbud av kontrollerfunktionaliteter sömlöst integreras i alla Unity-spel.

Föreslagna artiklar
Hur man använder nytt HDRP-vattensystem i Unity
Unity hur man skapar objekt med musklick
Hur man ställer in Joystick Controller för rörelse i Unity
Målindikator i enhet
Zone Controller Pro - Unity Asset Store-paket
Skript för att skapa en ljusbrytare i Unity
Top Unity Assets från Asset Store