Gestion des IME dans Unity WebGL : Intégration transparente avec le plugin WebGLInput

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 :

  1. Dans les Player Settings, section Scripting Define Symbols, ajoutez WEBGLINPUT_TAB.
  2. Cochez l'option Enable Tab Text dans l'inspecteur du composant WebGLInput.

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.

Étiquettes: Unity WebGL IME Input Method Editor WebGLInput UI Toolkit

Publié le 1 août à 10h42