Menu
CoddyTech

Dwa systemy wejścia

Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 43 z 56.

Unity ma dwa sposoby odczytywania danych z klawiatury i myszy. Dotychczas używałeś Input Manager: klasy Input z metodami GetKey, GetAxis i GetButtonDown, a także osi i przycisków o nazwach ustawionych w Project Settings > Input Manager. Nowszym rozwiązaniem jest pakiet Input System (com.unity.inputsystem). Jego skrypty zaczynają się od using UnityEngine.InputSystem;, a urządzenia są w nim odczytywane jako obiekty, takie jak Keyboard.current i Mouse.current, oraz za pośrednictwem akcji: nazwanych czynności wykonywanych przez gracza, takich jak Move i Jump, z których każda jest przypisana do klawiszy, drążków i przycisków.

To, z którego rozwiązania korzysta projekt, zależy od ustawienia Player: Edit > Project Settings > Player > Other Settings > Active Input Handling. Dostępne są trzy opcje: Input Manager (Old), Input System Package (New) i Both. Nowy projekt Unity 6 domyślnie korzysta z Input System Package (New), a każde wywołanie klasy Input powoduje wtedy zgłoszenie wyjątku InvalidOperationException z informacją, że odczytujesz dane wejściowe za pomocą UnityEngine.Input, podczas gdy projekt korzysta z pakietu Input System. Dlatego we wcześniejszych lekcjach prosiliśmy o wybranie opcji Both. Zmiana tego ustawienia wymaga ponownego uruchomienia edytora, co Unity proponuje zrobić.

Unity 6 domyślnie korzysta z nowego systemu, ponieważ jedno API obsługuje klawiatury, myszy, gamepady, ekrany dotykowe i kontrolery XR, a akcje pozwalają nie umieszczać klawiszy w kodzie: skrypt odczytuje akcję Jump, a ta sama linia działa dla spacji, przycisku A na gamepadzie lub przycisku ekranowego w telefonie, a także dla gracza, który zmieni przypisanie klawisza. Starszy Input Manager pozostaje dostępny dla starszych projektów. Widok gry w Coddy działa tak jak opcja Both, więc klawisze, kliknięcia i panel sterowania w telefonie (strzałki i Jump) trafiają do obu systemów. W pozostałej części tego rozdziału będziemy korzystać z Input System.

Spróbuj swoich sił

Ta lekcja nie zawiera wyzwania z kodem.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Tworzenie prawdziwych gier