Introdução de teclado no Unity

Espaço de Nomes:UnityEngine
Tipo: TouchScreenKeyboard

Embora o HoloLens suporte muitas formas de entrada, incluindo teclados Bluetooth, a maioria das aplicações não consegue assumir que todos os utilizadores terão um teclado físico disponível. Se a sua aplicação necessitar de introdução de texto, deve ser fornecida alguma forma de teclado no ecrã.

O Unity fornece a classe TouchScreenKeyboard para aceitar entradas de teclado quando não existe nenhum teclado físico disponível.

Comportamento do teclado do sistema HoloLens no Unity

No HoloLens, o TouchScreenKeyboard tira partido do teclado no ecrã do sistema e sobrepõe-se diretamente à vista volumetrica da sua aplicação MR. A experiência é semelhante à utilização de teclado nas aplicações incorporadas do HoloLens. Tenha em atenção que o teclado do sistema irá comportar-se de acordo com as capacidades da plataforma de destino, por exemplo, o teclado no HoloLens 2 suportaria interações diretas entre mãos, enquanto o teclado no HoloLens (1.ª geração) suportaria GGV (Olhar, Gesto e Voz). Além disso, o teclado do sistema não será apresentado ao executar o Unity Remoting do editor para um HoloLens.

Utilizar o teclado do sistema na sua aplicação Unity

Declarar o teclado

Na classe, declare uma variável para armazenar o TouchScreenKeyboard e uma variável para conter a cadeia que o teclado devolve.

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

Invocar o teclado

Quando ocorrer um evento a pedir entrada de teclado, utilize o seguinte para mostrar o teclado.

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

Pode utilizar parâmetros adicionais transmitidos para a TouchScreenKeyboard.Open função para controlar o comportamento do teclado (por exemplo, definir texto do marcador de posição ou suportar a correção automática). Para obter a lista completa de parâmetros, veja a documentação do Unity.

Obter conteúdo escrito

O conteúdo pode simplesmente ser obtido ao chamar keyboard.text. Poderá querer obter o conteúdo por frame ou apenas quando o teclado estiver fechado.

keyboardText = keyboard.text;

Opções de teclado alternativas

Além de utilizar diretamente a classe TouchScreenKeyboard , também pode obter a entrada do utilizador com o Campo de Entrada da IU do Unity ou o Campo de Entrada TextMeshPro. Além disso, existe uma implementação baseada no TouchScreenKeyboard na cena HandInteractionExamples do MRTK (existe um exemplo de interação de teclado no lado esquerdo).

Próximo Ponto de Verificação de Desenvolvimento

Se estiver a seguir o percurso de desenvolvimento do Unity que definimos, está a explorar as Mixed Reality capacidades e APIs da plataforma. A partir daqui, pode continuar para qualquer tópico ou avançar diretamente para a implementação da sua aplicação num dispositivo ou emulador.