Maak kennis met het invoersysteempakket

Pagina bijgewerkt :
Aanmaakdatum van pagina :

Verificatieomgeving

Ramen
  • Voor Windows 11
Unity Editor
  • 2020.3.25f1

Over het invoersysteempakket

In de begindagen van Unity gebruikten we de Input Manager als een mechanisme voor het ontvangen van input van gebruikers. In de omgeving van het diversifiëren van gameplatforms is de inputmanager echter verouderd. Er is een nieuw mechanisme toegevoegd voor het beheren van gebruikersinvoer: Input Systemu Manager.

Vanaf 2022 zijn zowel het nieuwe "Input System Package" als de "Input Manager" voor compatibiliteit beschikbaar. Als u een oud project hebt, kunt u "Input Manager" gebruiken zoals het is, Ik denk dat het in de toekomst zal overgaan naar een nieuw "invoersysteempakket", dus in een nieuw project Gebruik het invoersysteempakket.

In dit gedeelte wordt beschreven hoe u dit instelt.

Invoersysteempakketten installeren

Vanaf Unity Editor 2020.3.25f1 worden Input System-pakketten beheerd als pakketten die in eerste instantie niet zijn geïnstalleerd. Ga als volgt te werk om het pakket te installeren:

Nadat u uw project hebt gemaakt en de Unity Editor hebt gestart, selecteert u Window > Package Manager in het menu.

Wanneer het scherm Pakketbeheer verschijnt, selecteert u "Unity Registry" in het pakket.

Als u door de lijst aan de linkerkant scrolt, is er "Invoersysteem", dus selecteer het en klik op de knop "Installeren" rechtsonder.

Na installatie wordt het weergegeven als geïnstalleerd, dus sluit het dialoogvenster.

Als het volgende dialoogvenster wordt weergegeven na het installeren van het pakket, klikt u op de knop "Ja" om automatisch het volgende "Invoersysteempakket activeren" te configureren. In dit geval wordt de Unity Editor opnieuw opgestart.

This project is using the new input system package but the native platform backends for the new input system are not enabled in the player settngs. This means that no input from native devices will come through.

Do you want to enable the backends? Doing so *RESTART* the editor and will *DISABLE* the old UnityEngine.Input APIs.

Activeer het invoersysteempakket

Aangezien ik het pakket net heb geïnstalleerd, heb ik op dit moment een verouderde inputmanager actief. Schakel dit over naar het invoersysteempakket.

Selecteer > projectinstellingen bewerken in het menu.

Wanneer het dialoogvenster Projectinstellingen wordt geopend, selecteert u Speler in het linkermenu.

Selecteer in het onderstaande tabblad PC, Mac.... Selecteer het tabblad Instellingen en vouw Meer instellingen uit in de groep onderaan.

Als u tot op zekere hoogte naar beneden scrolt, vindt u een item met de naam "Invoerverwerking in gebruik" in de categorie "Instellingen", waar u "Invoersysteempakket (nieuw)" kunt selecteren. U kunt beide voorlopig activeren, maar het is verwarrend, dus in het geval van een nieuw project is het beter om alleen het invoersysteempakket te gebruiken.

Nadat u wijzigingen hebt aangebracht, verschijnt het volgende dialoogvenster, dus klik op "Toepassen" om de Unity Editor opnieuw te starten.

Dat is het, je bent klaar!

Over het probleem van het gebruik van de naamruimte "UnityEngine.InputSystem" in code-invoer die resulteert in een fout

Ik heb de code op dit moment niet ingevoerd, dus het zal geen fout zijn, Er wordt mogelijk een foutmelding weergegeven dat de naamruimte niet bestaat wanneer u deze probeert te gebruiken bij UnityEngine.InputSystem het invoeren van code (bijvoorbeeld Visual Studio).

Bijvoorbeeld als u een script maakt voordat u het "Input System Package" installeert.

Dit komt omdat het project UnityEngine.InputSystem geen verwijzing heeft naar . Ga als volgt te werk om dit op te lossen:

Selecteer > voorkeuren bewerken in het menu.

Selecteer Externe hulpmiddelen in het menu aan de linkerkant en klik op de knop Projectbestanden opnieuw genereren.

Door dit te doen, voegt Visual Studio UnityEngine.InputSystem toe aan de verwijzing.

Ook is de code foutloos.

De acceptatie van gebruikersinvoer in de gebruikersinterface wijzigen in een invoersysteempakket

Dit veld is niet relevant als u de gebruikersinterface van Unity niet gebruikt, zoals invoervelden of vervolgkeuzelijsten, en moet worden genegeerd.

Wanneer u een invoerveld, vervolgkeuzelijst enzovoort in een weergave plaatst, wordt er automatisch een canvas gemaakt en wordt het UI-object daar geplaatst. Tegelijkertijd wordt een object met de naam "EventSystem" gemaakt. Dit is een object dat beheert wat er gebeurt wanneer bepaalde invoer wordt uitgevoerd in de gebruikersinterface.

Dit EventSystem wordt in eerste instantie uitgevoerd met een oudere invoermanager. Als alleen het invoersysteempakket is ingeschakeld, werkt de gebruikersinterface niet zoals deze is, dus moet u overschakelen naar het invoersysteempakket.

Als u wijzigingen wilt aanbrengen, selecteert u eerst EventSystem.

Vervolgens wordt een waarschuwing weergegeven in de "Standalone Input Module" in de inspecteur.

Klik op de knop Vervangen door InputSystemUIInputModule om de zelfstandige invoermodule te vervangen door de gebruikersinterface-ingangsmodule van het invoersysteem.

De gebruikersinterface van je game zou nu invoer correct moeten accepteren.