Que la police ait été faite par votre graphiste, ou que vous l’ayez acheté pour votre projet, il est important de savoir comment l’importer dans Unity pour embellir vos interfaces.
Génération de l’Asset
Pour pouvoir utiliser votre police dans TextMeshPro, nous allons devoir générer un asset utilisable par Unity.
Remarque:Vous pouvez trouver et télécharger gratuitement des polices sur Google Fonts. J’ai choisi Dancing Scripts.
Je vous conseille de placer votre fichier dans le dossier Assets de votre projet. C’est normalement un fichier avec une extension .ttf. Une fois effectué, nous allons ouvrir la fenêtre appropriée: Font Asset Creator.
Si vous ne l’avez pas encore fait, il va vous demander d’importer les Assets essentiels à TextMeshPro par l’intermédiaire de cette fenêtre:
Cliquez sur “Import TMP Essentials”. Après un petit temps de chargement, les Assets sont importés. Il n’est pas nécessaire de cliquer sur le second bouton “Import TMP Examples & Extras”.
Nous allons maintenant utiliser la seconde fenêtre qui s’est ouverte:
Il y a un certain nombre de paramètres au sein de cette fenêtre. Nous ne les détaillerons pas tous, ainsi je vous invite à regarder la documentation au besoin. Les paramètres par défaut sont en général suffisants.
Nous allons maintenant générer l’asset nécessaire à partir de notre .ttf:
Comme vous pouvez le voir, il suffit de glisser notre .ttf dans Source Font File, puis de cliquer sur Generate Font File. Cela va générer une texture qui sera utilisée par TextMeshPro pour l’affichage. Vous pouvez ensuite cliquer sur:
- Save qui va écrire par dessus l’ancien fichier s’il existe, sinon il vous demandera ou l’enregistrer.
- Save as qui va simplement vous demander ou l'enregistrer. Ici, je le laisse à la racine mais je vous conseille fortement de le mettre à un endroit précis afin d’avoir une bonne arborescence de fichiers.
Utilisation de l'Asset
Une fois l’asset créé, nous pouvons l’utiliser dans Unity. Il suffit alors de créer un Text - TextMeshPro dans votre scène et de lui assigner la bonne police.
Régler le problème des accents
Nous allons maintenant essayer quelque chose. Remplacez “New Text” par “Bonjour éèàçöô”. Vous devriez remarquer un petit problème.
Comme vous pouvez le remarquer, les caractères accentués ne sont pas dans la bonne police. TextMeshPro a utilisé celle par défaut qui est une Liberation. Le problème vient de l’asset que nous avons généré. Nous allons voir comment y remédier.
Nous allons régénérer notre asset en changeant une chose: le Character Set. Actuellement, il est sur ASCII. Cela représente les caractères principaux utilisés sur les ordinateurs. Ordinateurs conçus par des anglophones. Ainsi, les accents ne sont pas dedans. Nous allons donc utiliser l’Extended ASCII.
Votre texte est peut-être maintenant invisible et c’est normal. Cela vient de TextMeshPro qui avait créé un objet pour utiliser la police par défaut, il suffit alors de le supprimer.
Voilà! Vous savez maintenant comment utiliser une police externe dans Unity et même prendre en compte les accents 👏