Al trabajar con campos de entrada desplazables de Nova UI en Unity 6, golpeamos un tema frustrante: TouchScreenKeyboard.isSupported estaba regresando. true en plataformas de escritorio plataformas como Windows y macOS. Pero el teclado virtual nunca apareció. ¿Por qué? Debido a que Unity define “apoyo” de forma suelta – si un hardware teclado está disponible, vuelve true, a pesar de un teclado virtual nunca se muestra.
💥 El síntoma en NovaUI TextFieldMobileInput.InputLoop
if (touchScreenKeyboardController.Status != TouchScreenKeyboard.Status.Visible)
Esta comprobación fallaba: suponía erróneamente que el teclado estaba visible cuando no lo estaba, lo que provocaba pérdida de foco no deseada o salidas de coroutina.
🧠 La corrección correcta
No confíes en TouchScreenKeyboard.isSupported solo. Combinelo con Application.isMobilePlatform para un control de tiempo de ejecución limpio:
void Awake()
{
if (!Application.isMobilePlatform)
{
Debug.Log("TextFieldMobileInput disabled on non-mobile platform.");
this.enabled = false;
}
}
O si quieres parchear el TextFieldMobileInput en NovaUI
protected override void OnEnable()
{
Debug.Log("TouchScreenKeyboard.isSupported: " + TouchScreenKeyboard.isSupported);
if (!Application.isMobilePlatform || !TouchScreenKeyboard.isSupported)
{
Debug.Log("Disabling TextFieldMobileInput – not a mobile platform");
enabled = false;
// If touchscreen keyboard not supported on this device, do nothing
return;
}
base.OnEnable();
// Subscribe to selection changed so we can update the touch screen
// keyboard whenever the input field selection changes
inputField.OnTextSelectionChanged += UpdateTouchScreenKeyboardSelection;
}
Esto evita ejecutar código de entrada solo móvil en plataformas que no lo soportan.
Resultado
- En Android/iOS:
TextFieldMobileInputgestiona la entrada del teclado virtual - En el escritorio:
TextFieldKeyboardInputtoma el control limpio - Sin errores de teclado, sin coroutines desperdiciados
🧪 Bono Tip
Incluso puede ejecutar esto en Editor a través de un menú contextual o script de validación para asegurar que el prefab no vuelva a habilitar este componente accidentalmente durante las pruebas.
Pensamientos finales
Los quirks de plataforma de Unity vuelven a golpear — pero con un guardia de tiempo libre, sus campos de entrada Nova UI pueden comportarse adecuadamente a través de plataformas.

TouchScreenKeyboard lógica a tiempo de ejecución en plataformas no móviles