Canvas ve Metin
Coddy'nin Unity Journey'sinin Gerçek Oyunlar Geliştirmek bölümünün bir parçası. Ders 1 / 60.
Unity, ekran üzerindeki metinleri, düğmeleri ve çubukları UI sistemiyle çizer. Unity 6'da GameObject > UI > Text - TextMeshPro seçeneği, Text (TMP) adlı bir metin nesnesi ekler; ilk seferinde Unity, metnin yazı tipi için ihtiyaç duyduğu TMP Essentials paketini içe aktarmanı ister. Sahnede henüz Canvas yoksa Unity bir tane oluşturur ve metni içine yerleştirir; ayrıca UI tıklamalarının iletildiği bir EventSystem de oluşturur. Canvas, çocuk nesnelerini kameranın görüntüsünün üzerine, kameranın nereye baktığından bağımsız olarak ekranın sabit bir konumunda çizer. Canvas Scaler ayarını Scale With Screen Size, 1920 x 1080, Match 0.5 olarak ayarla; bu kursta her sahnede bu ayarlar kullanılır ve böylece düzen her ekran boyutunda oranlarını korur.
Metnin bileşeni TextMeshPro - Text (UI) şeklindedir. Betikler bu bileşeni, TMPro ad alanındaki temel türü olan TMP_Text türünde bir alanda tutar ve gösterdiği içeriği bir metin dizisi olan text özelliği üzerinden değiştirir. Bu betik, başladığında seviyenin adını belirler:
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ükle; Unity, metin bileşenini bu alana yerleştirir. using TMPro; olmadan TMP_Text adı tanınmaz ve betik derlenmez (CS0246). Alan boş bırakılırsa ilk titleText.text kullanımı UnassignedReferenceException hatasına yol açar. Betiğin yazdığı içerik, Inspector'da yazdığın Text Input değerinin yerine geçer; yeni oluşturulmuş bir metinde bu değer New Text'tir.
Görev
KolayKaşifin hangi bölgede olduğunu üstteki ZoneText alanında göster.
Explorer.csdosyasınausing TMPro;satırını vepublic TMP_Text zoneText;alanını ekle. Sahne, ZoneText'i bu ada bağlar.Update()içinde, yorumun altınazoneText.textdeğerinitransform.position.xdeğeri2'nin altındaykenZone: Beach, aksi hâldeZone: Jungleolarak ayarla.
“Oyna” düğmesine bas ve sağa doğru yürüyerek çimlerin üzerine çık: metin Jungle olarak değişir. Ardından “Kontrol et” düğmesine 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'nin altında Zone: Beach, 2'den itibaren Zone: Jungle
}
}
Gerçek Oyunlar Geliştirmek bölümündeki tüm dersler
1Ekrandaki Metinler
Canvas ve MetinSkoru GösterSayıları BiçimlendirGeri Sayım ZamanlayıcısıTekrar: Hız Göstergesi2Düğmeler ve Ekranlar
Düğmeler ve onClickLambda İfadeleriInspector'da Bağlantı KurmaPanelleri Açma ve KapamaCan ÇubuklarıTekrar: Yükseltme Mağazası5PlayerPrefs ile Kaydetme
Bir Sayı KaydetmeVarsayılan Değerle YüklemeEn Yüksek SkorAyarları KaydetmeTekrar: Bankadaki ParalarKendi başına pratik yap: Unity playground