Menu
CoddyTech

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.

challenge icon

Wyzwanie

Łatwy

Odkrywca 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 typu TMP_Text o nazwie zoneText. 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ż
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Tworzenie prawdziwych gier