Je souhaite obtenir la largeur d'un texte en unité en utilisant C#.Unité C#, obtention de la largeur du texte/largeur du caractère de la police
Voici ce que j'essaie de faire.
int GetWidthOfMessage(string message)
{
int totalLength = 0;
Font font = text.font; //text is my UI text
CharacterInfo characterInfo = new CharacterInfo();
char[] arr = message.ToCharArray();
foreach (char c in arr)
{
font.GetCharacterInfo(c, out characterInfo, text.fontSize);
totalLength += characterInfo.advance;
}
return totalLength;
}
Mais retourne faux et characterInfo.advance est 0 font.GetCharacterInfo (...) tout caractère.
[Selon les docs] (https://docs.unity3d.com/ScriptReference/Font.GetCharacterInfo.html) GetCharacterInfo possède un paramètre 'FontStyle'. – ChrisF
Quelques éléments mis à part la question principale, pourriez-vous simplement faire une boucle dans la chaîne? il est en boucle comme s'il s'agissait d'un tableau de 'char' - vous pouvez également l'afficher et ensuite afficher la taille du message réel. –
Aussi dans les docs -" Note: Vous devriez seulement besoin de l'utiliser quand vous Si le caractère ch avec la taille et le style spécifiés est présent dans la texture de la police, alors cette méthode retournera vrai, [...] Si le caractère n'est pas présent, cette méthode retourne false " - Vos personnages sont-ils aussi dans la texture de la police? – ChrisF