Menu
CoddyTech

Canvas ve Metin

Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 1 / 56.

Unity, ekran metnini, düğmeleri ve çubukları UI sistemiyle çizer. Unity 6'da GameObject > UI > Text - TextMeshPro, Text (TMP) adlı bir metin nesnesi ekler; ilk seferinde Unity, metnin yazı tipi için ihtiyaç duyduğu TMP Essentials'ı içe aktarmanızı ister. Sahnede henüz bir Canvas yoksa Unity bir tane oluşturur ve metni içine yerleştirir; ayrıca UI tıklamalarının üzerinden geçtiği bir EventSystem ekler. Canvas, alt öğelerini kameranın görüntüsünün üzerine, kamera nereye bakarsa baksın ekranda sabit bir konuma çizer. Canvas Scaler ayarını Scale With Screen Size, 1920 x 1080, Match 0.5 olarak belirleyin; bu kursta her sahnede böyle yapılır ve böylece düzen, her ekran boyutunda oranlarını korur.

Metnin bileşeni TextMeshPro - Text (UI)'dır. Betikler, onu TMPro ad alanındaki temel türü olan TMP_Text türünde bir alanda tutar ve bir string olan text özelliği üzerinden gösterdiği metni değiştirir. Bu betik, başladığında seviyeye ad verir:

using UnityEngine;
using TMPro;

public class LevelIntro : MonoBehaviour
{
    public TMP_Text titleText;

    void Start()
    {
        titleText.text = "World 2: Ice Caves";
    }
}

Hierarchy'den Text (TMP) nesnesini Inspector'daki Title Text alanına sürükleyin; Unity, metin bileşenini alana yerleştirir. using TMPro; olmadan TMP_Text adı tanınmaz ve betik derlenmez (CS0246). Alan boş bırakılırsa ilk titleText.text, UnassignedReferenceException hatası verir. Betiğin yazdığı metin, Inspector'da yazılmış Text Input değerinin yerine geçer; yeni bir metin nesnesinde bu değer New Text'tir.

challenge icon

Görev

Kolay

Kaşif, Explorer.cs dosyasının zaten yaptığı gibi sol ve sağ oklarla adada yürür. Ekranın üst kısmındaki ZoneText içinde nerede olduğunu göster; burada hâlâ Yeni Metin: yazıyor.

  • using TMPro; ekle ve adı zoneText olan bir public TMP_Text alanı tanımla. Sahne, ZoneText'i tam olarak bu ada sahip bir alana bağlar.
  • Her karede, kaşifin x değeri 2'nin altındayken metin Zone: Beach, 2 ve üzerindeyken Zone: Jungle olsun.

Play'e bas, çimlerin üzerine yürü ve geri dön, ardından Check'e bas.

Kendin dene

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);

        // ZoneText içinde bölgeyi göster: x = 2 değerinin altında Zone: Beach, 2 ve sonrasında Zone: Jungle
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Gerçek Oyunlar Geliştirmek bölümündeki tüm dersler