Canvas i tekst
Część sekcji Tworzenie prawdziwych gier ścieżki Unity w Coddy. Lekcja 1 z 60.
Unity rysuje tekst wyświetlany na ekranie, przyciski i paski za pomocą swojego systemu UI. W Unity 6 opcja GameObject > UI > Text - TextMeshPro dodaje obiekt tekstowy o nazwie Text (TMP); za pierwszym razem Unity prosi o zaimportowanie TMP Essentials, które są potrzebne tekstowi do obsługi czcionki. Jeśli w scenie nie ma jeszcze Canvas, Unity tworzy go i umieszcza w nim tekst, a także dodaje EventSystem, przez który przechodzą kliknięcia elementów UI. Canvas rysuje swoje obiekty podrzędne na obrazie z kamery, w stałym miejscu na ekranie, niezależnie od tego, gdzie patrzy kamera. Ustaw opcję Canvas Scaler na Scale With Screen Size, 1920 x 1080, Match 0.5, tak jak w każdej scenie w tym kursie, a układ zachowa proporcje na ekranach o dowolnym rozmiarze.
Komponentem tekstu jest TextMeshPro - Text (UI). Skrypty przechowują go w polu typu bazowego TMP_Text z przestrzeni nazw TMPro i zmieniają wyświetlaną treść za pomocą jego właściwości text, która jest ciągiem znaków. Ten skrypt ustawia nazwę poziomu po uruchomieniu:
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 pole pozostanie puste, pierwsze użycie titleText.text spowoduje wyjątek UnassignedReferenceException. Treść przypisana przez skrypt zastępuje tekst wpisany w polu Text Input w Inspectorze, którym w przypadku nowego tekstu jest New Text.
Wyzwanie
ŁatwyPokaż u góry w ZoneText, w której strefie znajduje się odkrywca.
- W
Explorer.csdodajusing TMPro;i polepublic TMP_Text zoneText;. Scena łączy ZoneText z tą nazwą. - W
Update(), poniżej komentarza, ustawzoneText.textnaZone: Beach, gdytransform.position.xjest mniejsze niż2, a w przeciwnym razie naZone: Jungle.
Naciśnij „Graj” i przejdź w prawo na trawę: tekst zmieni się na Jungle. Następnie naciśnij „Sprawdź”.
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ż
}
}
Wszystkie lekcje w sekcji Tworzenie prawdziwych gier
1Tekst na ekranie
Canvas i tekstWyświetlanie wynikuFormatowanie liczbOdliczanie czasuPowtórka: prędkościomierz2Przyciski 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 bankuPoćwicz samodzielnie: Edytor online Unity