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.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Tworzenie prawdziwych gier
1Tekst na ekranie
Canvas i tekstWyświetlanie wynikuFormatowanie liczbOdliczanie czasuPowtórka: prędkościomierz4Sceny i poziomy
Wczytaj scenęUruchom poziom ponownieNastępny poziomZachowaj między scenamiPodsumowanie: wybór poziomu10Projekt: platformówka 3D
TrasaRuchome platformy2Przyciski i ekrany
Przyciski i onClickLambdyPodłączanie w InspectorzeWłączanie i wyłączanie paneliPaski zdrowiaPodsumowanie: sklep z ulepszeniami5Zapisywanie za pomocą PlayerPrefs
Zapisz liczbęWczytywanie z wartością domyślnąNajlepszy wynikZapisz ustawieniaPodsumowanie: monety w banku3Menedżer gry
Jeden skrypt obsługuje gręSingletonStany gryInstrukcja switch dla stanuPowtórka: menedżer rund6Projekt: Niekończący się bieg
Trzy toryPrzeszkody przed tobą9Nowy system wejścia
Dwa systemy wejściaKlawiatura i myszWciśnięte w tej klatceAkcje wejściaPodsumowanie: zmiana systemu wejścia