Canvas i tekst
Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 1 z 56.
Unity wyświetla tekst, przyciski i paski na ekranie za pomocą systemu UI. W Unity 6 opcja GameObject > UI > Text - TextMeshPro dodaje obiekt tekstowy o nazwie Text (TMP); za pierwszym razem Unity poprosi o zaimportowanie TMP Essentials, których tekst potrzebuje do obsługi swojej czcionki. Jeśli scena nie ma jeszcze Canvas, Unity utworzy go i umieści w nim tekst, a także doda EventSystem, przez który przechodzą kliknięcia elementów UI. Canvas wyświetla swoje elementy potomne na obrazie z kamery, w stałym miejscu na ekranie, niezależnie od tego, gdzie skierowana jest kamera. Ustaw w nim Canvas Scaler na Scale With Screen Size, 1920 x 1080, Match 0.5, tak jak w każdej scenie tego kursu, a układ zachowa proporcje na ekranie o dowolnym rozmiarze.
Komponent tekstu to TextMeshPro - Text (UI). Skrypty przechowują go w polu bazowego typu TMP_Text z przestrzeni nazw TMPro i zmieniają wyświetlany tekst za pomocą jego właściwości text, która jest ciągiem znaków. Ten skrypt ustawia nazwę poziomu podczas uruchamiania:
using UnityEngine;
using TMPro;
public class LevelIntro : MonoBehaviour
{
public TMP_Text titleText;
void Start()
{
titleText.text = "World 2: Ice Caves";
}
}Przeciągnij obiekt Text (TMP) z Hierarchy do pola Title Text w Inspectorze, a Unity umieści jego komponent tekstowy w tym polu. Bez using TMPro; nazwa TMP_Text jest nieznana i skrypt się nie kompiluje (CS0246). Jeśli pozostawisz to pole puste, pierwsze odwołanie do titleText.text spowoduje wyjątek UnassignedReferenceException. Tekst wpisany przez skrypt zastępuje tekst wpisany w polu Text Input w Inspectorze, którym w przypadku nowego obiektu tekstowego jest New Text.
Wyzwanie
ŁatwyOdkrywca przemierza wyspę za pomocą strzałek w lewo i w prawo, tak jak robi to już Explorer.cs. Pokaż, gdzie się znajduje, w polu ZoneText u góry ekranu, w którym nadal widnieje tekst Nowy tekst:
- Dodaj
using TMPro;i publiczne pole typuTMP_Texto nazwiezoneText. Scena łączy ZoneText z polem o dokładnie takiej nazwie. - W każdej klatce tekst wyświetla
Zone: Beach, gdy współrzędna x odkrywcy jest mniejsza niż 2, a od 2 wzwyż —Zone: Jungle.
Naciśnij Play, wejdź na trawę i wróć, a następnie naciśnij Check.
Spróbuj swoich sił
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);
// Wyświetl strefę w ZoneText: Zone: Beach dla x poniżej 2, Zone: Jungle od 2 wzwyż
}
}
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Tworzenie prawdziwych gier
1Tekst na ekranie
Canvas i tekstWyświetlanie wynikuFormatowanie liczbOdliczanie czasuPowtórka: prędkościomierz4Sceny i poziomy
Wczytaj scenęUruchom poziom ponownieNastępny poziomZachowaj między scenamiPodsumowanie: wybór poziomu10Projekt: platformówka 3D
TrasaRuchome platformy2Przyciski i ekrany
Przyciski i onClickLambdyPodłączanie w InspectorzeWłączanie i wyłączanie paneliPaski zdrowiaPodsumowanie: sklep z ulepszeniami5Zapisywanie za pomocą PlayerPrefs
Zapisz liczbęWczytywanie z wartością domyślnąNajlepszy wynikZapisz ustawieniaPodsumowanie: monety w banku