Pour garantir une saisie linguistique fluide dans vos applications WebGL Unity, le plugin open-source WebGLInput fournit une solution robuste. Il résout les problèmes classiques de compatibilité des éditeurs de méthode d'entrée (IME), permettant le support complet pour des langues nécessitant des IME comme le chinois, le japonais ou le coréen, ainsi que la gestion des caractères spéciaux et des opérations standards comme le copier-coller.
Intégration du plugin
L'installation peut s'effectuer via deux méthodes. L'approche recommandée utilise le Gestionnaire de Packages Unity avec l'URL du dépôt. Alternativement, le fichier package Unity correspondant peut être importé manuellement dans votre projet existant.
https://github.com/kou-yeung/WebGLInput.git?path=Assets/WebGLSupport
Configuration et utilisation
Pour activer le support des IME sur un champ de texte spécifique, attachez le composant WebGLInput à l'objet GameObject possédant un composant InputField ou TMP_InputField. Le composant agit immédiatement, sans configuration supplémentaire requise.
Pour modifier le comportement de la touche Tabulation et insérer un caractère tabulation au lieu de naviguer entre les champs, vous devez définir un symbole de scripting supplémentaire :
- Dans les
Player Settings, sectionScripting Define Symbols, ajoutezWEBGLINPUT_TAB. - Cochez l'option
Enable Tab Textdans l'inspecteur du composantWebGLInput.
Intégration avec UI Toolkit
Pour les projets utilisant l'interface UI Toolkit (Unity 2022 et ultérieur), une approche de manipulation porgrammatique est requise. Le code suivant illustre comment appliquer le support des IME à tous les champs TextField dans un document UI.
using UnityEngine;
using UnityEngine.UIElements;
public class UIInputManager : MonoBehaviour
{
[SerializeField]
private UIDocument targetDocument;
private void Awake()
{
var allTextFields = targetDocument.rootVisualElement.Query<TextField>().ToList();
foreach (var field in allTextFields)
{
var inputHandler = new WebGLSupport.WebGLInputManipulator();
field.AddManipulator(inputHandler);
}
}
}
Fonctionnalités et bonnes pratiques
Le plugin offre des fonctionnalités essentielles telles que l'affichage des listes de candidats IME, la navigation par onglets, et un support expérimental pour les entrées tactiles. Pour une performance optimale, n'appliquez le composant WebGLInput qu'aux champs de saisie réellement nécessitant un support IME.
La compatibilité s'étend à partir d'Unity 2018.2. Le support pour TextMesh Pro est intégré, et les fonctionnalités pour UI Toolkit sont disponibles à partir de la version 2022 du moteur.