Canvas nedir?
- Oyun Geliştirme kursu
- Orta seviye
- Ders 31/83
- 4 dk
Canvas'ın tüm UI öğelerinin kök kapsayıcısı olduğunu öğrenirsin.
Canvas nedir?
Canvas, Unity'de kullanıcı arayüzü (UI) ögelerinin (butonlar, metinler, resimler) çizildiği temel kök (root) kapsayıcıdır. Sahnede ekrana çizilecek her UI elemanı mutlaka hiyerarşide bir Canvas nesnesinin çocuğu (child) olmak zorundadır.
// Canvas bileşenine erişim ve çizim modu
Canvas canvas = GetComponent<Canvas>();
canvas.renderMode = RenderMode.ScreenSpaceOverlay;Canvas bulunmayan bir sahnede UI elemanları ekranda görüntülenemez ve kullanıcı etkileşimine giremez.
Canvas Render Mode türleri
Canvas üç temel çizim moduna sahiptir: Screen Space - Overlay (ekranın tam üstüne 2D olarak çizer), Screen Space - Camera (belirli bir kameranın önüne yansıtır) ve World Space (3D oyun dünyasının içine yerleştirir).
// Karakter üstü can barı için World Space modu
canvas.renderMode = RenderMode.WorldSpace;Karakterlerin tepesindeki isim etiketleri veya sağlık barları için 3D dünya koordinatlarında duran World Space tercih edilir.
Uygulama Canvas kök ve mod bilgisini yazdır
uiRoot değişkenine "Canvas", mode değişkenine "ScreenSpaceOverlay" ata. Ekrana UI Root: Canvas | Mode: ScreenSpaceOverlay yazdır.
Başlangıç kodu
using System;
class Program
{
static void Main()
{
// uiRoot ve mode değerlerini tanımlayıp yazdır
}
}Örnek çözüm
using System;
class Program
{
static void Main()
{
string uiRoot = "Canvas";
string mode = "ScreenSpaceOverlay";
Console.WriteLine("UI Root: " + uiRoot + " | Mode: " + mode);
}
}Beklenen çıktı
UI Root: Canvas | Mode: ScreenSpaceOverlay
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Unity'de buton, metin ve sağlık barı gibi UI ögelerinin ekranda çizilebilmesi için temel kural nedir?
- Nesnelerin MeshRenderer materyali içermesi
- Nesnelerin bir Rigidbody bileşenine sahip olması
- Nesnelerin hiyerarşide bir Canvas altında yer alması Doğru cevap
- Sahnede en az üç farklı AudioSource bulunması
Açıklama: Tüm UI ögeleri çizim alanı olarak bir Canvas'a ihtiyaç duyar ve onun alt hiyerarşisinde bulunmalıdır.
2 Ekran üstü çizim modunu belirle
canvas.renderMode = RenderMode.____;
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
Açıklama: UI'ı ekranın en üst 2D katmanına doğrudan çizmek için ScreenSpaceOverlay modu seçilir.
3 Canvas kavramları
| Kavram | Anlamı |
|---|---|
Canvas |
Tüm UI ögelerini barındıran kök bileşen |
Screen Space - Overlay |
UI'ı en üst ekrana doğrudan çizen mod |
World Space |
UI'ı 3D dünyada nesne gibi çizen mod |
EventSystem |
Kullanıcı girdilerini UI'a ileten nesne |