Dela via


Tangentbordsinmatning i Unity

Namnområde: UnityEngine
Typ: TouchScreenKeyboard

HoloLens stöder många typer av indata, inklusive Bluetooth-tangentbord, men de flesta program kan inte förutsätta att alla användare har ett fysiskt tangentbord tillgängligt. Om programmet kräver textinmatning bör någon form av skärmtangentbord tillhandahållas.

Unity tillhandahåller Klassen TouchScreenKeyboard för att acceptera tangentbordsindata när det inte finns något fysiskt tangentbord tillgängligt.

HoloLens-systemets tangentbordsbeteende i Unity

På HoloLens använder TouchScreenKeyboard systemets skärmtangentbord och överlägg direkt ovanpå den volymtriska vyn för ditt MR-program. Upplevelsen liknar att använda tangentbord i de inbyggda apparna i HoloLens. Observera att systemtangentbordet fungerar enligt målplattformens funktioner, till exempel att tangentbordet på HoloLens 2 stöder direkta handinteraktioner, medan tangentbordet på HoloLens (första generationen) stöder GGV (Gaze, Gesture och Voice). Dessutom visas inte systemtangentbordet när du utför Unity Remoting från redigeraren till en HoloLens.

Använda systemtangentbordet i Unity-appen

Deklarera tangentbordet

I klassen deklarerar du en variabel för att lagra TouchScreenKeyboard och en variabel som ska innehålla strängen som tangentbordet returnerar.

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

Anropa tangentbordet

När en händelse inträffar och begär tangentbordsindata använder du följande för att visa tangentbordet.

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

Du kan använda ytterligare parametrar som skickas till TouchScreenKeyboard.Open funktionen för att styra tangentbordets beteende (t.ex. ställa in platshållartext eller stöd för autokorrigering). En fullständig lista över parametrar finns i Unitys dokumentation.

Hämta skrivet innehåll

Innehållet kan helt enkelt hämtas genom att anropa keyboard.text. Du kanske vill hämta innehållet per bildruta eller bara när tangentbordet är stängt.

keyboardText = keyboard.text;

Alternativ för tangentbord

Förutom att använda klassen TouchScreenKeyboard direkt kan du också få användarindata med hjälp av Unitys gränssnittsindatafält eller TextMeshPro-indatafält. Dessutom finns det en implementering baserad på TouchScreenKeyboard i HandInteractionExamples-scenen i MRTK (det finns ett exempel på tangentbordsinteraktion till vänster).

Nästa kontrollpunkt för utveckling

Om du följer unity-utvecklingsresan som vi har lagt fram är du mitt uppe i att utforska funktionerna och API:erna för Mixed Reality-plattformen. Härifrån kan du fortsätta till valfritt ämne eller gå direkt till att distribuera din app på en enhet eller emulator.