Canvas e testo
Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 1 di 60.
Unity disegna il testo sullo schermo, i pulsanti e le barre con il suo sistema UI. In Unity 6, GameObject > UI > Text - TextMeshPro aggiunge un oggetto di testo chiamato Text (TMP); la prima volta, Unity chiede di importare TMP Essentials, necessari al testo per il suo font. Se nella scena non c'è ancora una Canvas, Unity ne crea una e vi inserisce il testo, oltre a un EventSystem, attraverso il quale passano i clic sull'interfaccia UI. La Canvas disegna i suoi elementi figli sopra l'immagine della telecamera, in una posizione fissa sullo schermo, ovunque guardi la telecamera. Imposta il suo Canvas Scaler su Scale With Screen Size, 1920 x 1080, Match 0.5, come in ogni scena di questo corso: il layout mantiene così le sue proporzioni con qualsiasi dimensione dello schermo.
Il componente del testo è TextMeshPro - Text (UI). Gli script lo memorizzano in un campo del tipo base TMP_Text, appartenente allo spazio dei nomi TMPro, e modificano ciò che mostra tramite la sua proprietà text, una stringa. Questo script assegna il nome al livello all'avvio:
using UnityEngine;
using TMPro;
public class LevelIntro : MonoBehaviour
{
public TMP_Text titleText;
void Start()
{
titleText.text = "World 2: Ice Caves";
}
}Trascina l'oggetto Text (TMP) dalla Hierarchy allo slot Title Text nell'Inspector e Unity inserirà il suo componente di testo nel campo. Senza using TMPro;, il nome TMP_Text è sconosciuto e lo script non viene compilato (CS0246). Se lasci lo slot vuoto, il primo titleText.text genera un'UnassignedReferenceException. Ciò che lo script scrive sostituisce il testo inserito in Text Input nell'Inspector, che per un nuovo testo è New Text.
Sfida
FacileMostra in ZoneText, in alto, in quale zona si trova l’esploratore.
- In
Explorer.cs, aggiungiusing TMPro;e il campopublic TMP_Text zoneText;. La scena collega ZoneText a quel nome. - In
Update(), sotto il commento, impostazoneText.textsuZone: Beachmentretransform.position.xè minore di2e suZone: Junglealtrimenti.
Premi «Gioca» e cammina verso destra fino a raggiungere l’erba: il testo diventa Jungle. Poi premi «Verifica».
Provalo tu
using UnityEngine;
public class Explorer : MonoBehaviour
{
public float speed = 4f;
void Update()
{
float move = Input.GetAxisRaw("Horizontal");
transform.Translate(move * speed * Time.deltaTime, 0f, 0f);
// Mostra la zona in ZoneText: Zona: Spiaggia per x inferiore a 2, Zona: Giungla da 2 in poi
}
}
Tutte le lezioni di Creare veri giochi
1Testo sullo schermo
Canvas e testoMostra il punteggioFormattare i numeriUn timer per il conto alla rovesciaRiepilogo: tachimetro2Pulsanti e schermate
Pulsanti e onClickLambdaCollegare nell'InspectorPannelli attivi e disattiviBarre della saluteRiepilogo: negozio degli upgrade5Salvare con PlayerPrefs
Salvare un numeroCaricare con un valore predefinitoPunteggio massimoSalvare le impostazioniRiepilogo: monete in banca8Controller del personaggio
CharacterController.MoveGravità manualeSaltoSpingere gli oggettiMuoviti dove guardiRiepilogo: doppio salto3Il gestore del gioco
Uno script gestisce il giocoIl SingletonStati di giocoSelezionare lo statoRiepilogo: gestore del round6Progetto: Runner infinito
Tre corsieOstacoli in arrivo9Il nuovo sistema di input
Due sistemi di inputTastiera e mousePremuto in questo frameAzioni di inputRiepilogo: cambio di inputEsercitati da solo: Playground Unity