Lorsqu’il découvre Unity, un nouveau venu peut se demander comment ajouter efficacement du texte dans leurs projets. Et la fameuse question s’il faut opter pour le composant Text classique ou pour TextMeshPro. Entre autres, ce guide a pour but de répondre à cette question.
TextMeshPro: Le meilleur choix
Depuis Unity 2019, TextMeshPro est préinstallé, et il est fortement recommandé de l’utiliser et de s’abstenir de la version classique. TextMeshPro offre une myriade de fonctionnalités supplémentaires et excelle dans la qualité du rendu du texte.
Pour utiliser TextMeshPro, il suffit d’ajouter le premier composant. Une fenêtre pop-up apparaît, vous invitant à cliquer sur « Importer TMP Essentials« , et vous êtes prêt à l’utiliser.
Ajouter un texte sur l’UI (Interface utilisateur)
Pour ajouter du texte sur l’interface utilisateur, procédez comme suit :
- Clique droit sur l’onglet hiérarchie de votre scène.
- Naviguer vers « UI -> Text – TextMeshPro ».
- Vous pouvez également utiliser le menu supérieur : « GameObject -> UI -> Text – TextMeshPro. »
Si votre scène n’a pas de canvas, Unity en créera un automatiquement pour vous (par défaut en mode Screen-Space Overlay, assurant qu’il apparaisse devant votre monde 3D). Votre texte deviendra un enfant de ce canvas. Vous pouvez alors personnaliser votre texte et le positionner comme vous le souhaitez. N’oubliez pas que les coordonnées de position sont désormais des coordonnées d’écran.
Ajouter un texte, contexte 3D
Pour ajouter du texte dans un environnement 3D, procédez comme suit :
- Clique droit sur l’onglet hiérarchie de votre scène.
- Naviguez vers « 3D Object -> Text – TextMeshPro. »
- Vous pouvez également utiliser le menu supérieur: « GameObject -> 3D Object -> Text – TextMeshPro. »
Comme pour la section UI, vous pouvez personnaliser votre texte et le positionner comme vous le souhaitez, mais cette fois-ci, les coordonnées sont des coordonnées 3D.
Comment ajouter un texte via code
Si vous préférez ajouter du texte de manière dynamique par le biais de scripts, vous pouvez utiliser les exemples de code suivants. Toutefois, lorsque votre jeu est en cours d’exécution, il peut s’avérer plus pratique de créer des prefabs plutôt que d’ajouter du texte par le biais du code.
Pour l’environnement UI:
using UnityEngine;
using TMPro;
public class AddTextUI : MonoBehaviour
{
private void Start()
{
gameObject.AddComponent<TextMeshProUGUI>();
}
}
Pour l’environnement 3D:
using UnityEngine;
using TMPro;
public class AddText3D : MonoBehaviour
{
private void Start()
{
gameObject.AddComponent<TextMeshPro>();
}
}
Ces scripts vous permettent d’ajouter des composants TextMeshPro dans un contexte UI ou 3D. N’oubliez pas de vous assurer que vos gameObject dans un environnement UI sont des enfants d’un canvas.
Après avoir ajouté un texte, vous pouvez aussi le modifier et changer la couleur de votre texte.
Bon codage !