Sprites en ligne dans le texte d'Unity?

10

Comment puis-je utiliser différents matériaux lors de l'utilisation de la balise pour la syntaxe de texte riche d'Unity?

Je veux pouvoir avoir des sprites en ligne avec mon texte sans avoir à créer des polices personnalisées.

Voici ce que j'ai jusqu'à présent: entrez la description de l'image ici Voici la syntaxe que j'utilise pour le texte de mon image:

Planetary <quad material=1 size=20 x=0.1 y=0.1 width=0.1 height=0.1 /> Intergalactic

Je suppose que "matériel = 1" fait référence à l'indice de matériau de l'objet texte. Comment puis-je le configurer pour utiliser un matériau différent?

Existe-t-il un plugin ou une autre ressource qui facilite l'intégration d'icônes dans du texte?

James Linden
la source
3
L'utilisation d'un quadavec le texte riche d' Unity est la seule solution. L' materialattribut est le matériau à la "position dans le tableau de matériaux du rendu". Je voudrais prétraiter ou concaténer l'index de matériau approprié en cherchant à travers Renderer.materialspour trouver le matériau que vous recherchez.
MLM
Je vais essayer et revenir avec quelques résultats, merci MLM!
James Linden
1
Cette question est transposée sur Unity Answers . Il semble que même si le texte riche est pris en charge, les quads ne sont pas conformes à Tim C et Phil de Unity, voir: forum.unity3d.com/threads/…
MLM
1
J'ai fait une implémentation qui le fait dans UI Text (par opposition à la méthode quad avec TextMesh) en générant et en positionnant dynamiquement des images enfants. Les détails deviennent un peu compliqués, mais si cela peut être utile à n'importe qui, je peux l'écrire comme réponse.
DMGregory
@DMGregor, j'aimerais que vous rédigiez une réponse ou un lien vers votre code pour votre script Image Sprited.
James McMahon

Réponses:

1

Comme le système de texte est toujours le système de texte hérité, vous ne pouvez pas incorporer des images dans du texte. La seule option serait d'avoir un groupe de disposition et d'avoir des blocs de texte et d'image séparés

Alternativement, vous pouvez utiliser un actif comme TextMeshPro qui a une nouvelle implémentation de texte qui le prend en charge pleinement (et bien plus encore!)

Côté obscur
la source