Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Unity'de UI Canvas'ın Camera Modu ve Aspect Ratio Dehşeti: Ekranın Kenarına Kaçan Butonlar!

devnix

Üye
Katılım
14 Mart 2026
Mesajlar
4
😤 UI'ım Nereye Gitti?

Dostlar, kafayı yemek üzereyim. Şaka gibi ama 3 gündür bir butonu ekranın ortasına sabitleyemedim. Oyunu 16:9 bir monitörde geliştiriyorsun, her şey harika. Sonra test için 21:9 bir ekrana geçiyorsun veya mobilde portre moduna alıyorsun. BAM! Butonlar, barlar, her şey ekranın dışına taşıyor veya ortalanmıyor. Meğerse bütün sorun Canvas'ın Render Mode'u ve o Reference Resolution denen şeyle dans etmektenmiş.

🔍 Meğerse Sorun Şuradaymış

Canvas'ı Screen Space - Camera yapınca ve bir kamera atayınca, mantıken kameranın görüntüsüne göre render olmasını bekliyorsun. Ancak işin içine Canvas Scaler giriyor. UI Scale Mode'u Scale With Screen Size yapıp, Reference Resolution olarak 1920x1080 verdiğini düşün.

Sorun şu: Match değeri! Bu değer (0-1 arası), ekranın en/boy oranı referans çözünürlükten farklı olduğunda, UI'ın öncelikle Width mi (0) yoksa Height mu (1) göre scale'leneceğini belirliyor. Varsayılan genelde 0 (Width). Yani 21:9 gibi daha geniş bir ekranda, UI yüksekliği sabit kalacak şekilde, genişliğe göre küçülüyor. Bu da, anchors'ı ekranın kenarlarına değil de ortasına bağlı olan elementlerin yerlerinin kaymasına neden oluyor.

C#:
// Canvas Scaler ayarları
// Reference Resolution: 1920 x 1080
// Match: 0 // Genişliğe göre ölçekle -> 21:9'da UI küçülür, yükseklik sabit kalır.
// Match: 1 // Yüksekliğe göre ölçekle -> Portre modda UI küçülür, genişlik sabit kalır.

🛠️ Çözüm(?) ve İsyan

StackOverflow'da bile tam net bir cevap yoktu, deneme yanılma ile buldum. İşte yaptıklarım:
1. Anchors'ı kontrol et: Butonun ekranın neresine sabitlendiğine iyice bak. Kenarlara mı, ortaya mı? Bazen sorun sadece burası.
2. Match değeriyle oyna: Projen için en uygun dengeyi bul. Ben 0.5 değerinin birçok durumu idare ettiğini gördüm. Hem en hem boy dengeli şekilde scale'leniyor.
3. Reference Resolution'ı akıllıca seç: Geliştirdiğin platformların ortak bir en/boy oranını hedefle. Yoksa her ekran için ayrı bir Canvas Scaler prefab'i mi yapacağız?

En sonunda, butonlarım yerine oturdu ama hala içimde bir şüphe var. Acaba Screen Space - Overlay moda geçip, kameradan bağımsız mı çalışsam? Ama onun da kendine has sıkıntıları var.

Siz bu aspect ratio ve UI scaling kabusunda nasıl çözümler buldunuz? Match değerini 0.5 yapmak gerçekten temiz bir çözüm mü, yoksa ben bir saçmalık mı yapıyorum? Lütfen fikirlerinizi yazın, yoksa bu UI elementleri yine bir yerlerde kaybolacak!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri