11/12/2022
I udviklingen af interaktive applikationer og spil med Unity står man ofte over for udfordringen med tekstinput på platforme, hvor et fysisk tastatur ikke er en mulighed. Dette gælder især for projekter designet til virtuelle virkeligheds (VR) systemer, mobile enheder eller konsolspil, der primært styres via en gamepad. At implementere et velfungerende og brugervenligt skærmtastatur fra bunden kan være en tidskrævende og kompleks opgave. Heldigvis findes der specialiserede løsninger, der kan forenkle denne proces betydeligt og levere en poleret brugeroplevelse. Dette asset tilbyder netop en sådan komplet skærmtastaturløsning til Unity, designet til at integrere problemfrit med TextMesh Pro’s TMPInputField og understøtte et bredt spektrum af inputmetoder.
Dette skærmtastatur er ikke blot et visuelt element; det er en fuldt funktionel interaktionskomponent, der giver dine brugere mulighed for at indtaste tekst og interagere med inputfelter på en intuitiv måde, uanset om de anvender en gamepad, berøringsskærm eller VR-controllere. Det er skræddersyet til at løse de specifikke udfordringer ved tekstinput på platforme, hvor et traditionelt tastatur er upraktisk eller fraværende, og sikrer, at dine applikationer forbliver tilgængelige og brugervenlige.

Hvad er et Skærmtastatur til Unity?
Et skærmtastatur til Unity er en brugerfladekomponent, der simulerer et fysisk tastatur direkte på skærmen. Det tillader brugere at indtaste tekst i inputfelter ved at interagere med virtuelle taster via mus, touch, gamepad eller VR-controllere. Dette specifikke asset er udviklet med fokus på problemfri integration med TextMesh Pro's TMPInputField, som er standarden for rig tekstformatering i Unity. Formålet er at levere en robust og effektiv tekstindtastningsoplevelse, der er essentiel for applikationer og spil, hvor brugere skal indtaste navne, søgeord, passwords eller andre tekstbaserede data.
Behovet for et skærmtastatur opstår i mange scenarier. Forestil dig et VR-spil, hvor spilleren skal indtaste sit navn til en highscore-tavle, eller en mobilapplikation, der kræver loginoplysninger. Uden et skærmtastatur ville disse interaktioner være umulige eller yderst besværlige. Dette asset udfylder dette hul ved at tilbyde en løsning, der er både funktionel og let at installere, hvilket sparer udviklere for utallige timer med manuel implementering og fejlfinding.
Nøglefunktioner og Fordele
Dette skærmtastatur-asset er pakket med funktioner, der gør det til et overlegent valg for enhver Unity-udvikler, der søger en pålidelig inputløsning. Hver funktion er designet til at forbedre både brugeroplevelsen og udviklingsprocessen:
- Gamepad-understøttelse: En af de mest fremtrædende funktioner er den fulde understøttelse af gamepad-input. Brugere kan nemt navigere tastaturet og indtaste tekst udelukkende ved hjælp af en gamepad. Dette er afgørende for spiludvikling til konsoller, PC-spil med gamepad-fokus, eller VR-applikationer, hvor en mus og et fysisk tastatur ikke er praktisk. Denne funktionalitet sikrer en flydende og tilgængelig oplevelse for et bredt publikum.
- Shift & Caps Lock: Asset'et simulerer et komplet tastatur med funktioner som Shift og Caps Lock. Dette giver brugerne mulighed for at skifte mellem store og små bogstaver samt aktivere Caps Lock for vedvarende store bogstaver, præcis som de ville gøre på et fysisk tastatur. Dette bidrager til en mere naturlig og forventet indtastningsoplevelse.
- Primære & Sekundære Taster: Hver tast på skærmtastaturet kan konfigureres med både en primær og en sekundær karakterværdi. For eksempel kan en tast vise 'a' som primær og 'A' som sekundær, eller '1' som primær og '!' som sekundær. Denne fleksibilitet tillader et mere kompakt tastatur-layout, hvor færre taster kan repræsentere et større udvalg af tegn, og understøtter dynamisk skift mellem tegn.
- Simpel Opsætning: Asset'et er designet med 'drag-and-drop' funktionalitet. De medfølgende prefabs og komponenter er intuitive at bruge og kan hurtigt implementeres i et eksisterende Unity-projekt. Dette minimerer den tid og indsats, der kræves for at få tastaturet op at køre, hvilket gør det til en ideel løsning for udviklere med stramme tidsplaner.
- Tilpasningsbare Farver: Udviklere har fuld kontrol over tastaturets visuelle udseende. Farverne for valgte taster og inputfelter kan justeres, så tastaturet passer perfekt ind i dit spils eller din applikations overordnede UI-design og branding. Dette sikrer en sammenhængende og professionel æstetik.
- Responsive Inputfelter: En intelligent funktion er, at tastaturet automatisk vises, når et TMPInputField vælges af brugeren, og skjules igen, når inputfeltet mister fokus. Denne automatiske respons forbedrer brugeroplevelsen ved at give en flydende og ikke-påtrængende interaktion med tekstinput.
- Direkte Integration med TMPInputField: Asset'et er specifikt designet til at fungere problemfrit med TextMesh Pro’s TMPInputField. Denne direkte integration sikrer optimal kompatibilitet, ydeevne og stabilitet, da TextMesh Pro er en almindeligt anvendt og robust løsning for tekstgengivelse i Unity.
- Inkluderede Prefabs: For at fremskynde udviklingen leveres asset'et med en række færdiglavede prefabs, herunder selve skærmtastaturet, inputfelt-containere til testformål og komplette demo-scener. Disse 'ready-to-use' elementer gør det nemt at komme i gang og teste funktionaliteten med det samme.
- Kompatibel med Unity's Nye Input System: Asset'et udnytter Unity's moderne Input System, hvilket sikrer en fremtidssikret og mere robust håndtering af input. Det inkluderer brugerdefinerede handlinger for 'select' og 'deselect', hvilket giver en præcis og responsiv kontrol, især ved brug af gamepad og touch.
Komponenter i Asset'et
For at forstå, hvordan dette skærmtastatur fungerer, er det nyttigt at kende de centrale komponenter, der udgør asset'et:
Scripts
- OnScreenKeyboard.cs: Dette er kernescripet, der orkestrerer hele tastaturets funktionalitet. Det er ansvarligt for at håndtere tastetryk, skifte mellem store og små bogstaver (Shift/Caps Lock), og styre tastaturets synlighed i forhold til aktive inputfelter. Dette script sikrer, at tastaturet reagerer korrekt på brugerinput og interagerer gnidningsfrit med resten af dit UI.
- ManagedInputField.cs: Dette script er bindeleddet mellem et TMPInputField og skærmtastaturet. Det styrer interaktionen, herunder at signalere til tastaturet, når inputfeltet er valgt, og modtage tegninput fra tastaturet for at opdatere inputfeltets tekst. Det automatiserer også visning og skjul af tastaturet baseret på inputfeltets fokusstatus.
- Key.cs: Hvert individuelt tastaturknap-objekt på skærmtastaturet har dette script tilknyttet. Key.cs definerer tastens primære og sekundære tegnværdier (f.eks. 'a' og 'A' eller '1' og '!'). Det håndterer også den visuelle respons, når en tast trykkes, og sender det relevante tegn til
OnScreenKeyboard.cs.
Prefabs
- OnScreenKeyboard Prefab: Dette er den visuelle repræsentation af skærmtastaturet. Det er et færdiglavet UI-element, der nemt kan trækkes ind i dit Canvas i Unity. Det anbefales typisk at placere det nederst i UI-hierarkiet for at sikre, at det vises over andre UI-elementer, når det er aktivt.
- InputFieldContainer Prefab: En praktisk prefab, der indeholder et forkonfigureret TMPInputField med
ManagedInputField.csscriptet allerede tilknyttet. Denne container er ideel til hurtig test og demonstration af tastaturets interaktion med inputfelter. - TestPage Prefab: En komplet demo-scene, der er sat op med skærmtastaturet og flere inputfelter. Denne prefab er en fremragende ressource til hurtigt at teste alle tastaturets funktioner og se, hvordan de interagerer i en fuld kontekst, uden at skulle opsætte en scene fra bunden.
Trin-for-Trin Opsætning
At komme i gang med dette skærmtastatur er en ligetil proces, der kan opdeles i nogle få simple trin:
1. Scene Opsætning
- Tilføj OnScreenKeyboard Prefab: Træk
OnScreenKeyboard Prefabfra asset-mappen ind i dit Unity Canvas. Placer det strategisk, ofte nederst på skærmen, og sørg for, at dets RectTransform er konfigureret, så det korrekt overlapper andre UI-elementer, når det er aktivt. - Tilføj Inputfelter: For hvert TMPInputField, som du ønsker skal interagere med skærmtastaturet, skal du tilføje
ManagedInputField.csscriptet som en komponent. Dette script er essentielt for at etablere forbindelsen mellem dit inputfelt og tastaturet. - Brug InputFieldContainer (Valgfrit): For hurtig test kan du trække
InputFieldContainer Prefabind i din scene. Denne prefab leveres med et forkonfigureret inputfelt, der allerede er forbundet til tastaturet. - TestPage Scene: Du kan også åbne den medfølgende
TestPagescene i Demo-mappen. Denne scene er allerede fuldt opsat og klar til at demonstrere alle tastaturets funktioner, hvilket er en god måde at se, hvordan alt fungerer sammen.
2. Script Konfiguration
- OnScreenKeyboard.cs: Vælg
OnScreenKeyboardobjektet i din hierarki. I Inspector-vinduet finder duOnScreenKeyboard.cskomponenten. Her skal du konfigurere taste-array'et ved at trække alle de individuelleKey-objekter fra tastaturet ind i de relevante pladser. Du kan også tildele valgfri Shift- og Caps Lock-knapper, hvis de er separate GameObjects. - ManagedInputField.cs: Dette script håndterer automatisk tastaturets synlighed og interaktioner med TMPInputField. Der kræves typisk ingen yderligere manuel konfiguration her udover at sikre, at det er tilføjet til dit inputfelt.
- Key.cs: For hver individuel tastaturknap (objekter med
Key.csscriptet) skal du indstilleprimaryValueogsecondaryValue. Dette er de tegn, tasten repræsenterer i henholdsvis sin primære og sekundære tilstand (f.eks. 'a' og 'A' for en bogstavstast, eller '1' og '!' for en symboltast). Dette muliggør dynamisk tegnskift.
3. Input System Konfiguration
Dette asset kræver Unity's Input System. Hvis du ikke allerede har det installeret i dit projekt, skal du gøre det via Unity's Package Manager (Window > Package Manager > Unity Registry > Input System > Install).
- Mulighed 1: Træk og Slip: Den nemmeste metode er at bruge det medfølgende
InputActionsasset, som findes i scripts-mappen. Træk dette asset ind i 'Actions Asset'-feltet på ditEventSystemGameObject i scenen. Dette vil automatisk konfigurere de nødvendige inputhandlinger. - Mulighed 2: Tilføj Brugerdefinerede Inputhandlinger: Hvis du foretrækker at konfigurere manuelt, skal du sørge for, at dit Input System har følgende handlinger defineret:
- Submit Action: Typisk bundet til gamepad Button South (A-knap).
- Select Action: Typisk bundet til gamepad Button South (A-knap).
- Deselect Action: Typisk bundet til gamepad Button East (B-knap).
Disse handlinger er afgørende for navigations- og interaktionslogikken med tastaturet via en gamepad.
Tilpasningsmuligheder
Asset'et tilbyder omfattende tilpasningsmuligheder, så du kan skræddersy tastaturet præcist til dit projekts behov og visuelle stil:
- Knaptilpasning: Du har fuld kontrol over, hvilke tegn hver knap repræsenterer. Ved at ændre
primaryValueogsecondaryValueiKey.csscriptet for hver tast, kan du tilpasse tastaturets layout, understøtte forskellige sprog (herunder danske bogstaver som æ, ø, å) og inkludere specielle symboler. Dette giver enestående fleksibilitet til at designe et tastatur, der passer til specifikke indtastningskrav. - Tastaturposition og Størrelse: Skærmtastaturet er et almindeligt Unity UI-element. Du kan nemt justere dets
RectTransform(position, størrelse, ankerpunkter) i Inspector-vinduet forOnScreenKeyboardprefab'en. Dette gør det muligt at placere tastaturet præcis der, hvor det giver mest mening i din brugerflade – om det så er nederst på skærmen, i midten, eller tilpasset en bestemt skærmstørrelse eller opløsning. - Farvetilpasning: Som tidligere nævnt kan du ændre farverne for både de individuelle taster (f.eks. når de er valgte) og de tilknyttede inputfelter. Dette er essentielt for at opretholde en ensartet visuel stil i hele din applikation eller dit spil, og for at give brugerne klar visuel feedback under interaktion.
Eksempel på Scenopsætning
For at give dig en hurtig start, her er en opsummeret guide til en grundlæggende scenopsætning:
- Importer Nødvendige Pakker: Sørg for at have Input System og TextMeshPro installeret via Unity's Package Manager.
- Opret Canvas & EventSystem: I din scene, opret et nyt Canvas (GameObject > UI > Canvas). Unity vil automatisk tilføje et EventSystem GameObject. Sørg for, at EventSystem er konfigureret med det nye Input System.
- Positioner Tastaturet: Træk
OnScreenKeyboardprefab'en ind i dit Canvas. Placer det, så det er synligt og tilgængeligt, typisk nederst i UI-hierarkiet for at sikre, at det er øverst, når det vises. - Tilføj TMPInputField: Opret et TMPInputField i dit Canvas (GameObject > UI > Text - TextMeshPro Input Field). Tilføj
ManagedInputField.csscriptet som en komponent til dette TMPInputField GameObject. - Test i Scene: Gå ind i Play Mode. Klik på dit TMPInputField, og skærmtastaturet skulle automatisk dukke op. Test indtastning med din mus eller en tilsluttet gamepad.
Tabel: Funktioner vs. Fordele
| Funktion | Fordel for Bruger | Fordel for Udvikler |
|---|---|---|
| Gamepad-understøttelse | Intuitiv navigation i VR/Spilmiljøer uden mus/tastatur | Bredere platformskompatibilitet; appellerer til konsol- og VR-brugere |
| Primære/Sekundære Taster | Fuld tegnsætning og specielle tegn med kompakt design | Fleksibelt tastaturlayout; sparer UI-plads |
| Simpel Drag-and-Drop Opsætning | Problemfri og forventet brugeroplevelse | Hurtig implementering; signifikant tidsbesparelse i udvikling |
| Tilpasningsbare Farver | Personlig brugeroplevelse; tastatur passer til appens æstetik | Branding og designfrihed; højere professionel finish |
| Automatisk Visning/Skjul | Flydende og ikke-påtrængende interaktion | Mindre kodning for UI-logik; færre fejl |
| TMPInputField Integration | Stabil og pålidelig tekstindtastning med rig formatering | Optimeret ydelse og kompatibilitet med moderne Unity-praksis |
| Nyt Input System Kompatibelt | Responsiv og præcis inputhåndtering | Fremtidssikret løsning; udnytter Unity's nyeste teknologi |
Hvorfor Vælge Dette Skærmtastatur?
Dette skærmtastatur-asset til Unity er mere end blot en simpel UI-komponent; det er en omfattende løsning, der adresserer de kritiske behov for tekstinput i moderne interaktive applikationer. Dets fokus på brugervenlighed, fleksibilitet og robusthed gør det til et fremragende valg for udviklere, uanset projektets skala eller platform. Asset'ets evne til at understøtte forskellige inputmetoder – fra gamepad til touch og VR-controllere – sikrer, at dine applikationer er tilgængelige for et bredt publikum og leverer en ensartet, høj kvalitetsoplevelse på tværs af enheder.
Desuden er det værd at bemærke, at dette asset er gratis til både personlige og kommercielle projekter, hvilket gør det til en yderst omkostningseffektiv løsning uden at gå på kompromis med kvaliteten. Dets dybe integration med Unity's nye Input System og TextMesh Pro garanterer, at du arbejder med en moderne, fremtidssikret og ydeevneoptimeret løsning. Ved at vælge dette skærmtastatur kan du hurtigt og effektivt implementere en poleret tekstindtastningsfunktionalitet, der forbedrer den samlede brugerinteraktion og frigiver tid til at fokusere på andre kerneelementer i dit projekt.
Ofte Stillede Spørgsmål (FAQ)
- Q: Er dette asset gratis at bruge?
- A: Ja, dette skærmtastatur-asset er gratis til både personlige og kommercielle projekter. Det giver dig fuld frihed til at modificere og tilpasse det til dine specifikke behov.
- Q: Hvilke platforme er skærmtastaturet kompatibelt med?
- A: Det er ideelt til platforme, hvor et fysisk tastatur ikke er praktisk, herunder mobil-enheder (iOS, Android), VR-systemer og spil, der primært styres med en gamepad. Dets fleksible design gør det anvendeligt i mange forskellige kontekster.
- Q: Er opsætningen kompliceret?
- A: Nej, asset'et er designet til at være yderst let at installere. Med 'drag-and-drop' prefabs og enkle konfigurationsmuligheder kan du få det op at køre på få minutter. De medfølgende demo-scener giver også en hurtig start.
- Q: Kan jeg ændre tastaturets udseende?
- A: Absolut! Du kan tilpasse farverne for både de enkelte taster og inputfelterne for at matche dit projekts visuelle design. Desuden kan du ændre tasternes værdier (primære og sekundære tegn) for at understøtte forskellige sprog eller specielle tegn.
- Q: Kræver det Unity's nye Input System?
- A: Ja, asset'et er bygget til at udnytte Unity's nye Input System for en mere robust og moderne inputhåndtering. Sørg for at installere Input System-pakken via Unity's Package Manager, hvis du ikke allerede har den.
- Q: Understøtter det kun engelske tegn?
- A: Nej. Selvom standardopsætningen måske ligner et engelsk tastatur, kan du nemt indstille
primaryValueogsecondaryValuefor hver tast iKey.csscriptet. Dette betyder, at du kan konfigurere tastaturet til at understøtte ethvert tegn, herunder danske bogstaver som æ, ø, å, samt andre specifikke symboler eller sprogtegn.
Hvis du vil læse andre artikler, der ligner Skærmtastatur til Unity: Den Komplette Løsning, kan du besøge kategorien Teknologi.
