Disk Oyununda Alan ve Duvarlar Hakkında Ayrıntılı Anlatım

Mobil bir disk kaydırma oyununda disklerin kayacağı alanları oluşturmak için kullanılabilecek farklı türde objeler ve her bir objenin avantajları ve dezavantajları şu şekilde özetlenebilir:

Obje TürüÖzelliklerAvantajlarDezavantajlarZorluk DerecesiPerformans
2D Sprite (Texture)Sprite Renderer kullanılır, Collider eklenir (Box veya Polygon Collider 2D).Kolay ve hafif, yüksek performanslı, Android cihazlarda optimizeSadece 2D görünüm sağlar, 3D derinlik ve doku hissiyatı eksikKolayÇok yüksek
3D PlaneBasit bir plane objesi oluşturulup, Material eklenir, Collider (Box veya Mesh Collider) eklenir.3D derinlik hissi sağlar, yüzeye doku eklenebilir3D plane bazı düşük performanslı cihazlarda zorlayıcı olabilirOrtaYüksek
3D Mesh (Arena veya Custom Field)Kendi modellemesi yapılmış 3D mesh kullanılır, Collider eklenir (genellikle Mesh Collider)Gerçekçi ve özelleştirilebilir bir görünüm sağlarÇok detaylı modelleme performansı düşürebilir, karmaşık collider performansı etkileyebilirZorOrta
Tilemap (2D için)Tilemap Renderer ve Tilemap Collider kullanılarak bir alan oluşturulurHafif, yüksek performans, geniş alanlarda kolay kullanım2D ile sınırlıdır, detaylı yüzeyler için zorluk çıkarırKolayÇok yüksek
Procedural Generated SurfaceKod ile procedural olarak üretilmiş alan, örneğin farklı kayma yüzeyleri oluşturulabilirÇok esnek ve özelleştirilebilir, oyun içi değişimlere uyum sağlarKarmaşık programlama gerektirir, optimizasyon zorlukları olabilirÇok ZorDeğişken
3D Terrain (Unity Terrain)Unity’nin yerleşik Terrain sistemi ile oluşturulmuş yüzeyBüyük alanlar için uygundur, kolayca detaylandırılabilirKüçük alanlar için aşırıya kaçabilir, daha fazla RAM ve CPU kullanırZorDüşük-orta
Physics Material 2D/3D ile Box veya Capsule Collider (Düz Satıhlar için)Basit collider’lara physics material ile sürtünme ve kayma özellikleri eklenirHafif ve hızlı, kayma etkisi kolaylıkla ayarlanabilirBasit yüzeylerde sınırlı seçenek sunar, özel görseller gerektirebilirKolayÇok yüksek
Bumpy Surface (3D Modellenmiş Düzensiz Yüzeyler)3D modelleme ile hazırlanmış engebeli veya özel yüzeylerÖzel his ve farklı kayma etkileri yaratırPerformans gereksinimi yüksek olabilirZorOrta-Düşük

Tavsiyelerim:

  • 2D Sprite veya 3D Plane kullanımı başlangıç seviyesinde veya basit oyunlar için idealdir. Performans dostudur ve mobil cihazlarda yüksek FPS sağlar.
  • 3D Mesh veya Terrain kullanımı daha gelişmiş oyunlarda tercih edilebilir, ancak performans dikkatlice optimize edilmelidir.
  • Tilemap sistemi 2D alanlarda geniş haritalar için idealdir.
  • Physics Material kullanarak kayma ve sürtünme ayarları yapılabilir, böylece kayma etkisini basitçe kontrol edilebilir.

Genel Tavsiye: Eğer oyununuz basit bir disk kaydırma oyunuysa ve performans çok önemliyse 2D Sprite veya 3D Plane ile Collider eklemeyi önerilir. Bu tür oyunlar için Physics Material kullanarak kayma etkisini düzenlemek kolaylık sağlar. Ancak, daha özelleşmiş ve gerçekçi yüzeyler isteniliyorsa, 3D Mesh veya özel Procedural Surface tercih edilebilir.

Disk kaydırma oyunu için duvarları oluşturmak üzere kullanılabilecek çeşitli objeler ve özellikleri aşağıdaki gibi olabilir:

Obje TürüÖzelliklerAvantajlarDezavantajlarZorluk DerecesiPerformans
2D Sprite (Texture)Sprite Renderer kullanılır, Collider eklenir (Box Collider 2D)Kolay kurulum, yüksek performansSadece 2D görünüm sağlar, 3D derinlik eksikKolayÇok yüksek
3D Cube3D Cube objesi kullanılır, Box Collider eklenir3D derinlik hissi sağlar, doku ve materyal uygulanabilirKarmaşık doku kullanımlarında performansı düşürebilirOrtaYüksek
Tilemap (2D için)Tilemap Collider ile birlikte Tilemap Renderer kullanılırKolay kurulum ve geniş alanlarda kullanım2D ile sınırlıdır, görsel açıdan basitKolayÇok yüksek
Procedural Generated WallKodla procedural olarak duvar yaratılır, özel collider’lar eklenirEsnek ve özelleştirilebilir, oyun içi değişimlere kolayca uyum sağlarKarmaşık programlama gerektirir, optimizasyon zor olabilirZorDeğişken
3D Custom Wall MeshÖzel modelleme yapılmış bir mesh ve Mesh Collider kullanılırGerçekçi ve özel duvar tasarımları için idealdirDetaylı modeller performansı düşürebilir, optimizasyon gerekebilirZorOrta
Physics Material 2D/3D ile Basit ColliderBox veya Capsule Collider ile Physics Material eklenirBasit ve hızlı kurulum, kayma ve çarpma etkilerini kolayca kontrol edebilmeSınırlı görsellik sağlarKolayÇok yüksek
Invisible Collider (Görünmez Bariyer)Herhangi bir görünür obje olmadan yalnızca collider kullanılırKolay ve hafif, çarpma noktalarını belirginleştirirGörsel bir bariyer olmadığı için anlaşılması zor olabilirKolayÇok yüksek
3D Terrain veya Detaylı ModellemeTerrain kenarları veya detaylı modelleme ile özel duvar yüzeyleri oluşturulurGerçekçi ve özel yüzeyler için uygundurKarmaşık yüzeylerde performans kaybı yaşanabilir, optimizasyon zor olabilirZorOrta-Düşük

Tavsiyelerim:

  • 2D Sprite veya 3D Cube kullanımı basit ve yüksek performanslı duvarlar oluşturmak için en uygun seçenektir. Bu tür oyunlarda duvarların işlevi çoğunlukla çarpışmaları sınırlamak olduğundan, fazla detay gerekmiyorsa bu yöntem idealdir.
  • Invisible Collider kullanarak duvarları görünmez hale getirmek, oyun tasarımına bağlı olarak minimalist ve yüksek performanslı bir seçenek olabilir.
  • Physics Material kullanarak duvarlara çarpma anındaki kayma veya frenleme efektlerini ayarlayabilirsiniz. Diskin duvarlardan sekme hissiyatını kontrol etme açısından kullanışlıdır.
  • Custom 3D Wall Mesh veya Procedural Generated Wall daha gelişmiş projeler için uygundur ve özel görsellik katabilir; ancak optimizasyon gerektirebilir.

Genel Tavsiye: Mobil cihazlarda yüksek performans sağlamak için 2D Sprite veya 3D Cube ile Box Collider kullanımını önerilir. Eğer daha esnek bir duvar etkisi oluşturmak istenilirse, Physics Material ekleyerek kayma veya sekme gibi çarpışma özelliklerini düzenlenebilir.

Mobilde farklı ekran çözünürlüklerinde veya ekran oranlarında kayma veya şekil bozukluklarını önlemek için Unity 2022 sürümünde dikkat edilmesi gereken temel ayarlar ve menü seçenekleri :

1. Alan ve Duvarlarda Dikkat Edilmesi Gerekenler

  • Collider Ayarları: Duvar ve alanlar için kullandığınız Collider’ların doğru hizalandığından emin olun. Bu, çarpışmaların doğru şekilde hesaplanmasını sağlar. Box Collider 2D/3D gibi basit collider’lar, performans açısından daha etkilidir.
  • Physics Material Kullanımı: Diskin çarpma anında yavaşlaması veya sekmesi gibi efektleri kontrol etmek için duvarlara Physics Material ekleyin. Bu, duvarın sürtünme (friction) ve esneklik (bounciness) değerlerini belirleyerek daha gerçekçi bir çarpışma sağlar.
  • Transform Ayarları: Alanın ve duvarların pozisyon, dönüş ve ölçek ayarlarını dikkatlice kontrol edin. Mobilde pozisyonların kaymasını önlemek için ekranın her iki ucuna eşit oranda hizalayın.
  • Yerleşim Düzeni: Alanı ve duvarları oyun ekranının sınırlarına uygun şekilde konumlandırın ve ekranın genişliği veya yüksekliği değiştiğinde ekranın dışına taşmamasını sağlayın.

2. Çözünürlük ve Ekran Oranı Uyumluluğu Ayarları

Farklı çözünürlüklerde ekran kaymaları ve şekil bozuklukları yaşamamak için Unity’de aşağıdaki ayarları yapabilirsiniz:

A. Canvas ve UI Elemanları Ayarları (UI için)

UI elemanlarının ekran boyutlarına göre otomatik olarak ayarlanması için Canvas ayarlarını yapılandırın:

  • Canvas Ayarı: Canvas’ı seçin ve Render Mode olarak “Screen Space – Camera” veya “Screen Space – Overlay” seçeneklerini kullanın.
  • Canvas Scaler: Canvas nesnesinde Canvas Scaler bileşenini ekleyin veya zaten varsa ayarlarını şu şekilde yapılandırın:
    • UI Scale Mode: Scale with Screen Size olarak ayarlayın. Bu, ekran boyutlarına göre ölçeklenmesini sağlar.
    • Reference Resolution: Çalışmayı hedeflediğiniz temel çözünürlüğü girin, örneğin 1080×1920.
    • Screen Match Mode: Match Width or Height seçeneğini kullanarak ekranın genişlik veya yüksekliğine göre ayarlama yapabilirsiniz. Match kaydırma çubuğunu 0 (genişlik) ile 1 (yükseklik) arasında bir değere ayarlayarak dengeyi sağlayın.

B. Camera Ayarları (Oyun Sahnesi için)

Kamera ayarlarını doğru yaparak, farklı ekran oranlarında alanın veya duvarların ekrandan taşmasını engelleyebilirsiniz.

  • Ana Kamera (Main Camera): Kamera türünü Orthographic olarak ayarlayın. Bu, 2D oyunlar için uygundur ve ekran oranında değişikliklerde sahnenin görünümünü korur.
  • Ortographic Size Ayarı: Ekranın yüksekliğine göre ayarlanan Orthographic Size değeri, ekranın farklı boyutlarına göre uyum sağlar.
  • Viewport Rect Ayarları: Eğer farklı bir konumlandırma yapmak isterseniz, Viewport Rect değerlerini kullanarak kamerayı ayarlayabilirsiniz. Özellikle W ve H değerlerini kullanarak farklı çözünürlüklerde ekrana tam oturmasını sağlayabilirsiniz.
  • Safe Area (Güvenli Alan) Kullanımı: Farklı telefon modellerinde ekranın kenarlarındaki boşluklar için Safe Area‘yı kullanarak önemli oyun elementlerinin bu alanlara taşmamasını sağlayabilirsiniz.

C. Aspect Ratio ve Ekran Uyumluluğu İçin Proje Ayarları

  • Edit > Project Settings > Player > Resolution and Presentation menüsünden ayarları düzenleyin.
    • Default Orientation: “Portrait” veya “Landscape” modunu seçin. Hangi modda çalışacaksanız, bunu sabitlemek önemlidir.
    • Render Outside Safe Area: Bu ayar, bazı cihazların (özellikle çentikli telefonların) güvenli alan dışında görüntü vermesini engeller.
    • Supported Aspect Ratios: Buradan desteklemek istediğiniz ekran oranlarını belirleyebilirsiniz. Örneğin, “16:9”, “18:9” veya “19.5:9” gibi yaygın oranları seçebilirsiniz.
    • Use Screen-Space Canvas: UI elemanlarının tüm ekran boyutlarına uyum sağlaması için Screen-Space Canvas kullanmak faydalı olur.

D. Screen.SetResolution Kullanımı

Bazı özel çözünürlük ayarları gerekirse, Screen.SetResolution komutunu kullanarak belirli çözünürlüklere uyum sağlayabilirsiniz. Örneğin, oyunun başında bu komutu kullanarak çözünürlüğü sabitleyebilir veya cihazın desteklediği en uygun çözünürlüğü seçebilirsiniz.

void Start() {
    Screen.SetResolution(1080, 1920, true); // Tam ekran 1080x1920 çözünürlükte çalıştırır.
}


E. Universal Render Pipeline (URP) Kullanımı

Unity’nin Universal Render Pipeline’ını (URP) kullanıyorsanız, mobil cihazlar için daha yüksek performans sağlayan Dynamic Resolution gibi özellikleri etkinleştirebilirsiniz. URP ayarlarını kullanarak, çözünürlükle ilgili performansı optimize etmek mümkündür:

  • Rendering > Universal Render Pipeline Asset içinde, Dynamic Resolution‘ı açarak, çözünürlük ayarlamaları ile performansı optimize edebilirsiniz.
  • Anti-Aliasing: Özellikle mobil cihazlarda düşük çözünürlüklerde görüntü kalitesini artırmak için Anti-Aliasing ayarlarını kontrol edebilirsiniz.

3. Özet

  • Canvas Scaler ile ekran boyutlarına göre UI öğelerinin otomatik ölçeklenmesini sağlayın.
  • Ana Kamera’yı Orthographic olarak ayarlayıp Viewport Rect ve Orthographic Size ile farklı ekran oranlarına uyum sağlayın.
  • Edit > Project Settings > Player menüsünden Aspect Ratio ve Render Outside Safe Area gibi uyumluluk ayarlarını yapın.
  • Dynamic Resolution ve Anti-Aliasing ayarları ile performansı artırın.

Tavsiye

Eğer amaç basit bir 2D oyun ise, Orthographic Kamera ve Canvas Scaler kullanarak farklı çözünürlük ve ekran oranlarına uyum sağlamak en mantıklısıdır. Hem kolay hem de yüksek performanslıdır.

Fakat oyun daha karmaşık hale geliyorsa, Universal Render Pipeline (URP) ile ek optimizasyon seçenekleri değerlendirebilir.

Bir cevap yazın