Canvas e testo
Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 1 di 56.
Unity disegna il testo sullo schermo, i pulsanti e le barre usando 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 la scena non ha ancora un Canvas, Unity ne crea uno e vi inserisce il testo, oltre a un EventSystem attraverso cui passano i clic sulla UI. Il Canvas disegna i suoi elementi figli sopra l'immagine della telecamera, in una posizione fissa sullo schermo, ovunque sia rivolta la telecamera. Imposta Canvas Scaler su Scale With Screen Size, 1920 x 1080, Match 0.5, come in ogni scena di questo corso, così il layout mantiene le sue proporzioni su qualsiasi dimensione dello schermo.
Il componente del testo è TextMeshPro - Text (UI). Gli script lo conservano in un campo del suo tipo base TMP_Text, dallo spazio dei nomi TMPro, e modificano ciò che mostra tramite la sua proprietà text, una stringa. Questo script assegna un 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 inserisce 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, la prima istruzione titleText.text genera UnassignedReferenceException. Ciò che lo script scrive sostituisce il testo inserito in Text Input nell'Inspector, che per un nuovo testo è New Text.
Sfida
FacileL'esploratore cammina sull'isola con le frecce sinistra e destra, come fa già Explorer.cs. Mostra dove si trova in ZoneText nella parte superiore dello schermo, dove compare ancora Nuovo testo:
- Aggiungi
using TMPro;e un campo pubblico di tipoTMP_TextchiamatozoneText. La scena collega ZoneText a un campo con quel nome esatto. - A ogni fotogramma, il testo indica
Zone: Beachquando la coordinata x dell'esploratore è inferiore a 2, eZone: Jungleda 2 in poi.
Premi Gioca, cammina sull'erba e torna indietro, 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: Zone: Beach per x < 2, Zone: Jungle da x = 2 in poi
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Creare veri giochi
1Testo sullo schermo
Canvas e testoMostra il punteggioFormattare i numeriUn timer per il conto alla rovesciaRiepilogo: tachimetro4Scene e livelli
Caricare una scenaRiavviare il livelloLivello successivoMantenere i dati tra le sceneRiepilogo: selezione del livello10Progetto: Platform 3D
Il percorsoPiattaforme mobili2Pulsanti 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: Corsa infinita
Tre corsieOstacoli in arrivo9Il nuovo sistema di input
Due sistemi di inputTastiera e mousePremuto in questo frameAzioni di inputRiepilogo: cambio di input