Hoe de Xbox-controller in Unity te gebruiken

Unity Engine, een robuust platform voor game-ontwikkeling, biedt uitgebreide tools voor het integreren van verschillende invoerapparaten. Onder de veelgebruikte apparaten valt de Xbox-controller op door zijn ergonomische ontwerp en uitgebreide functionaliteiten. In deze tutorial wordt de integratie van een Xbox-controller in Unity projecten toegelicht, waarbij het proces van toegang tot invoergegevens en het beantwoorden van veelvoorkomende vragen met betrekking tot deze integratie gedetailleerd worden beschreven.

1. Het opzetten van de ontwikkelomgeving

  • Zorg ervoor dat de nieuwste versie van Unity is geïnstalleerd.
  • Sluit de Xbox-controller aan op de computer. Zorg ervoor dat de stuurprogramma's up-to-date zijn en dat het systeem de controller herkent.

2. Toegang tot Invoerbeheer

Om de huidige invoer te wijzigen en te bekijken:

  • Open Unity.
  • Navigeer naar 'Edit' -> 'Project Settings' -> 'Input Manager'.
  • In de Input Manager worden meerdere assen en knoppen vermeld. Voor Xbox-controllers komen bepaalde standaardassen en knoppen zoals "Horizontal" en "Vertical" overeen met de joystickbewegingen.

3. De Xbox-controlleringangen configureren

Laten we voor deze tutorial de knop 'A' en de linkerknop 'Joystick' instellen.

  • Vouw de 'Axes' uit in Invoerbeheer.
  • Om een ​​nieuwe invoer toe te voegen, klikt u met de rechtermuisknop op een bestaande as en dupliceert u deze. Hernoem dit naar "A_Button".

A_Button-configuratie:

  • Stel de 'Type' in op 'Joystick Axis'.
  • Kies de juiste 'Axis' voor de A-knop. Voor Xbox-controllers is dit doorgaans de 0-as.
  • Voor 'Joy Num' kiest u 'Get Motion from all Joysticks' tenzij er een specifieke joystick bedoeld is voor gebruik.

Linker joystickconfiguratie:

  • Dupliceer nog een as en hernoem deze "JoystickHorizontal" voor de horizontale beweging. Stel 'Type' in op 'Joystick Axis'. Stel 'Axis' in op 'X axis'.
  • Dupliceer nog een keer en hernoem het "JoystickVertical" voor de verticale beweging. Stel 'Type' in op 'Joystick Axis'. Stel 'Axis' in op 'Y axis'.

4. Toegang tot controllerinvoer in scripts

  • Om de invoer van de Xbox-controller in Unity scripts te benutten, gebruik je de klasse 'Input'.
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
    }
}
  • Voeg dit script toe aan elk relevant GameObject om invoerwaarden op te halen en deze indien nodig te manipuleren.

Antwoorden op veelgestelde vragen:

  1. Waarom worden de invoer van de Xbox-controller niet herkend in Unity?: De Xbox-controller is mogelijk niet goed aangesloten of de stuurprogramma's zijn mogelijk niet bijgewerkt. Zorg ervoor dat het systeem de controller herkent. Controleer bovendien of de Input Manager-instellingen overeenkomen met het juiste joysticknummer en de juiste as.
  2. Hoe maak ik onderscheid tussen meerdere aangesloten Xbox-controllers?: In de Input Manager maakt 'Joy Num' de selectie van een specifiek joysticknummer mogelijk. Wijs elke Xbox-controller een uniek nummer toe om onderscheid te maken.
  3. Kunnen er aangepaste knoptoewijzingen worden gemaakt voor de Xbox-controller in Unity?: Absoluut. De Input Manager maakt aangepaste knoptoewijzingen mogelijk. Dupliceer gewoon een bestaande as/knop, hernoem deze en pas de instellingen dienovereenkomstig aan.

Conclusie

Het integreren van de Xbox-controller in Unity projecten verrijkt de gameplay-ervaring en geeft spelers vertrouwde en intuïtieve bediening. Door de Input Manager en de Input-klasse te begrijpen, kan een breed scala aan controllerfunctionaliteiten naadloos worden geïntegreerd in elke Unity game.

Voorgestelde artikelen
Hoe u het nieuwe HDRP-watersysteem in eenheid kunt gebruiken
Unity Hoe objecten te spawnen met een muisklik
Doelindicator in eenheid
In-game Terrain Heightmap-editor voor Unity
Top Unity-activa uit de Asset Store
Eenheid FPS-teller
2D-munten verzamelen in eenheid