Wprowadzanie klawiatury w środowisku Unity

Przestrzeń nazw:UnityEngine
Typ: TouchScreenKeyboard

Urządzenie HoloLens obsługuje wiele form danych wejściowych, w tym klawiatury Bluetooth, jednak większość aplikacji nie może zakładać, że wszyscy użytkownicy będą mieli dostępną fizyczną klawiaturę. Jeśli aplikacja wymaga wprowadzania tekstu, należy podać jakąś formę klawiatury na ekranie.

Aparat Unity udostępnia klasę TouchScreenKeyboard do akceptowania danych wejściowych klawiatury, gdy nie ma dostępnej klawiatury fizycznej.

Zachowanie klawiatury systemu HoloLens w środowisku Unity

Na urządzeniu HoloLens funkcja TouchScreenKeyboard korzysta z klawiatury na ekranie systemu i bezpośrednio nakłada się na widok woluminowy aplikacji MR. Środowisko jest podobne do używania klawiatury we wbudowanych aplikacjach urządzenia HoloLens. Należy pamiętać, że klawiatura systemowa będzie zachowywać się zgodnie z możliwościami platformy docelowej, na przykład klawiatura na HoloLens 2 będzie obsługiwać bezpośrednie interakcje ręczne, podczas gdy klawiatura na urządzeniu HoloLens (1. gen) będzie obsługiwać GGV (Gaze, Gest i Voice). Ponadto klawiatura systemowa nie będzie wyświetlana podczas wykonywania komunikacji zdalnie aparatu Unity z edytora do urządzenia HoloLens.

Korzystanie z klawiatury systemowej w aplikacji Aparatu Unity

Deklarowanie klawiatury

W klasie zadeklaruj zmienną do przechowywania tablicy TouchScreenKeyboard i zmiennej do przechowywania ciągu zwracana przez klawiaturę.

UnityEngine.TouchScreenKeyboard keyboard;
public static string keyboardText = "";

Wywoływanie klawiatury

Gdy wystąpi zdarzenie żądające danych wejściowych klawiatury, użyj poniższej instrukcji, aby wyświetlić klawiaturę.

keyboard = TouchScreenKeyboard.Open("text to edit");

Możesz użyć dodatkowych parametrów przekazanych do funkcji, TouchScreenKeyboard.Open aby kontrolować zachowanie klawiatury (np. ustawianie tekstu zastępczego lub pomocnicze autokorekty). Aby uzyskać pełną listę parametrów, zapoznaj się z dokumentacją aparatu Unity.

Pobieranie zawartości wpisanej

Zawartość można pobrać po prostu przez wywołanie metody keyboard.text. Możesz pobrać zawartość na ramkę lub tylko wtedy, gdy klawiatura jest zamknięta.

keyboardText = keyboard.text;

Alternatywne opcje klawiatury

Oprócz bezpośredniego używania klasy TouchScreenKeyboard można również uzyskać dane wejściowe użytkownika przy użyciu pola wejściowego interfejsu użytkownika aparatu Unity lub pola wejściowego TextMeshPro. Ponadto istnieje implementacja oparta na tablicy TouchScreenKeyboard w scenie HandInteractionExampleszestawu NARZĘDZI MRTK (po lewej stronie znajduje się przykład interakcji klawiatury).

Następny punkt kontrolny programowania

Jeśli obserwujesz określoną przez nas podróż do programowania aparatu Unity, jesteś w trakcie eksplorowania możliwości platformy Mixed Reality i interfejsów API. W tym miejscu możesz przejść do dowolnego tematu lub przejść bezpośrednio do wdrażania aplikacji na urządzeniu lub emulatorze.