Einführung in das Eingabesystempaket

Diese Seite wurde aktualisiert :
Erstellungsdatum der Seite :

Verifizierungsumgebung

Fenster
  • Windows 11
Unity-Editor
  • 2020.3.25f1

Über das Eingabesystempaket

In den Anfängen von Unity haben wir den Eingabe-Manager als Mechanismus zum Empfangen von Eingaben von Benutzern verwendet. Im Umfeld der Diversifizierung von Spieleplattformen ist der Eingabemanager jedoch veraltet. Ein neuer Mechanismus zur Verwaltung von Benutzereingaben wurde hinzugefügt: Input Systemu Manager.

Ab 2022 sind sowohl das neue "Input System Package" als auch der "Input Manager" aus Kompatibilitätsgründen verfügbar. Wenn Sie ein altes Projekt haben, können Sie den "Input Manager" so verwenden, wie er ist. Ich denke, dass es in Zukunft zu einem neuen "Eingabesystempaket" übergehen wird, also in einem neuen Projekt Verwenden Sie das Eingabesystempaket.

In diesem Abschnitt wird beschrieben, wie Sie es einrichten.

Installation von Eingabesystempaketen

Ab Unity Editor 2020.3.25f1 werden Eingabesystempakete als Pakete verwaltet, die nicht initial installiert sind. So installieren Sie das Paket:

Nachdem Sie Ihr Projekt erstellt und den Unity-Editor gestartet haben, wählen Sie im Menü Fenster > Paket-Manager aus.

Wenn der Bildschirm "Paket-Manager" angezeigt wird, wählen Sie "Unity Registry" aus dem Paket aus.

Wenn Sie in der Liste auf der linken Seite nach unten scrollen, gibt es "Eingabesystem", also wählen Sie es aus und klicken Sie unten rechts auf die Schaltfläche "Installieren".

Wenn es installiert ist, wird es als installiert angezeigt, also schließen Sie den Dialog.

Wenn nach der Installation des Pakets der folgende Dialog angezeigt wird, klicken Sie auf die Schaltfläche "Ja", um automatisch das nächste "Eingabesystempaket aktivieren" zu konfigurieren. In diesem Fall wird der Unity-Editor neu gestartet.

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.

Aktivieren Sie das Eingabesystempaket

Da ich das Paket gerade erst installiert habe, habe ich im Moment einen veralteten Eingabemanager aktiv. Schalten Sie dies auf das Eingabesystempaket um.

Wählen Sie > Projekteinstellungen bearbeiten aus dem Menü aus.

Wenn das Dialogfeld "Projekteinstellungen" geöffnet wird, wählen Sie im linken Menü die Option "Player" aus.

Wählen Sie auf der Registerkarte unten PC, Mac.... Wählen Sie die Registerkarte Einstellungen aus, und erweitern Sie Weitere Einstellungen in der Gruppe unten.

Wenn Sie etwas nach unten scrollen, finden Sie in der Kategorie "Einstellungen" einen Punkt namens "Eingabeverarbeitung in Gebrauch", in dem Sie "Eingabesystempaket (Neu)" auswählen können. Sie können vorerst beides aktivieren, aber es ist verwirrend, daher ist es im Falle eines neuen Projekts besser, nur das Eingabesystempaket zu verwenden.

Nachdem Sie die Änderungen vorgenommen haben, wird der folgende Dialog angezeigt, klicken Sie also auf "Übernehmen", um den Unity-Editor neu zu starten.

Das war's, du bist fertig!

Informationen zum Problem der Verwendung des Namespace "UnityEngine.InputSystem" in der Codeeingabe, die zu einem Fehler führt

Ich habe den Code im Moment nicht eingegeben, daher ist es kein Fehler, Möglicherweise erhalten Sie eine Fehlermeldung, dass der Namespace nicht vorhanden ist, wenn Sie versuchen, ihn bei der Eingabe von UnityEngine.InputSystem Code zu verwenden (z. B. Visual Studio).

Zum Beispiel, wenn Sie ein Skript erstellen, bevor Sie das "Input System Package" installieren.

Dies liegt daran, dass das Projekt UnityEngine.InputSystem keinen Verweis auf . Gehen Sie wie folgt vor, um dieses Problem zu beheben:

Wählen Sie > Einstellungen bearbeiten aus dem Menü.

Wählen Sie Externe Tools aus dem Menü auf der linken Seite und klicken Sie auf die Schaltfläche Projektdateien neu generieren.

Auf diese Weise fügt Visual Studio UnityEngine.InputSystem dem Verweis hinzu.

Außerdem ist der Code fehlerfrei.

Ändern Sie die Annahme von Benutzereingaben in der Benutzeroberfläche in ein Eingabesystempaket

Dieses Feld ist nicht relevant, wenn Sie die Unity-Benutzeroberfläche nicht verwenden, z. B. Eingabefelder oder Dropdowns, und sollte ignoriert werden.

Wenn Sie ein Eingabefeld, eine Dropdown-Liste usw. in einer Ansicht platzieren, wird automatisch ein Canvas erstellt, und das UI-Objekt wird dort platziert. Gleichzeitig wird ein Objekt mit dem Namen "EventSystem" erstellt. Dies ist ein Objekt, das verwaltet, was passiert, wenn eine Eingabe in der Benutzeroberfläche erfolgt.

Dieses EventSystem läuft zunächst mit einem älteren Eingabemanager. Wenn nur das Eingabesystempaket aktiviert ist, funktioniert die Benutzeroberfläche nicht unverändert, sodass Sie zum Eingabesystempaket wechseln müssen.

Um Änderungen vorzunehmen, wählen Sie zunächst EventSystem aus.

Dann wird im "Standalone Input Module" im Inspektor eine Warnung angezeigt.

Klicken Sie auf die Schaltfläche Durch InputSystemUIInputModule ersetzen, um das eigenständige Eingabemodul durch das Eingabemodul der Eingabesystembenutzeroberfläche zu ersetzen.

Die Benutzeroberfläche Ihres Spiels sollte jetzt Eingaben korrekt akzeptieren.