Blog

testi-unity3d

Migliorare i testi di Unity3D

Guide

Migliorare i testi di Unity3D


Migliorare i testi di Unity3D

Come rendere più belli i testi nel motore grafico Unity3D

Il vostro applicativo sta prendendo finalmente forma!
Avete cominciato a implementare tutto quello che avevate in mente, tutto funziona a dovere.
C’è solo un piccolissimo problema: i testi di Unity3D sono un pugno in un occhio.
Dunque come fare per migliorarli?

Abbiamo due possibilità:

  • Nel caso non si abbia la necessità di utilizzare dei testi dinamici (che cambiano via script) è possibile utilizzare delle semplici immagini in PNG. Possiamo realizzarle noi da soli con un programma come Photoshop oppure affidarci a siti web come Flamingtext o Cooltext che permettono di generare delle PNG da un nostro testo.


    Esempio di un testo generato in PNG su sfondo
  • Se invece abbiamo bisogno di un testo che si dovrà modificare via script come un punteggio, sull’Asset Store c’è TextMesh Pro. L’utilizzo di questo plugin è semplicissimo. Basta installarlo e quando dovremo inserire del testo nel Canvas della UI basterà selezionare TextMesh Pro al posto del solito Text.
    Esempio selezione TextMesh Pro

    Ora possiamo agire con esso tramite script. Ecco un semplicissimo esempio, in questo caso lo script è collegato direttamente all’oggetto appena aggiunto:

    using TMPro; // INCLUDO ANCHE QUESTA USING PER POTER USARE GLI OGGETTI IN QUESTIONE
    public class Manager_punteggio : MonoBehaviour
    {
        // Variabili per lo script
        TextMeshProUGUI Testo_punteggio;
        public static int Punteggio = 0;
        // Use this for initialization
        void Start ()
        {
             // Accedo al componente testo del oggetto e uso il metodo SetText per impostare il testo
             Testo_punteggio = gameObject.GetComponent<TextMeshProUGUI>();
             Testo_punteggio.SetText("");
        }
        // Update is called once per frame
        void Update ()
        {
             // Per impostare il testo posso anche usare la proprietà text come per il testo di default
             Testo_punteggio.text = Punteggio.ToString();
        }
    }
    

    Come vedete è possibile impostare il testo sia con il metodo SetText() che con la proprietà text.
    Come già detto in questo caso l’oggetto è collegato direttamente allo script in questione ma è ovviamente possibile in altri casi collegare l’oggetto a un altro script con una variabile pubblica e accedere da essa al componente TextMeshProUGUI tramite il metodo GetComponent.




Leave your thought here

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Copyrighted Image