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ü | Özellikler | Avantajlar | Dezavantajlar | Zorluk Derecesi | Performans |
---|---|---|---|---|---|
2D Sprite (Texture) | Sprite Renderer kullanılır, Collider eklenir (Box veya Polygon Collider 2D). | Kolay ve hafif, yüksek performanslı, Android cihazlarda optimize | Sadece 2D görünüm sağlar, 3D derinlik ve doku hissiyatı eksik | Kolay | Çok yüksek |
3D Plane | Basit bir plane objesi oluşturulup, Material eklenir, Collider (Box veya Mesh Collider) eklenir. | 3D derinlik hissi sağlar, yüzeye doku eklenebilir | 3D plane bazı düşük performanslı cihazlarda zorlayıcı olabilir | Orta | Yü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ı etkileyebilir | Zor | Orta |
Tilemap (2D için) | Tilemap Renderer ve Tilemap Collider kullanılarak bir alan oluşturulur | Hafif, yüksek performans, geniş alanlarda kolay kullanım | 2D ile sınırlıdır, detaylı yüzeyler için zorluk çıkarır | Kolay | Çok yüksek |
Procedural Generated Surface | Kod 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ğlar | Karmaşık programlama gerektirir, optimizasyon zorlukları olabilir | Çok Zor | Değişken |
3D Terrain (Unity Terrain) | Unity’nin yerleşik Terrain sistemi ile oluşturulmuş yüzey | Büyük alanlar için uygundur, kolayca detaylandırılabilir | Küçük alanlar için aşırıya kaçabilir, daha fazla RAM ve CPU kullanır | Zor | Düşü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 eklenir | Hafif ve hızlı, kayma etkisi kolaylıkla ayarlanabilir | Basit yüzeylerde sınırlı seçenek sunar, özel görseller gerektirebilir | Kolay | Ç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ır | Performans gereksinimi yüksek olabilir | Zor | Orta-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ü | Özellikler | Avantajlar | Dezavantajlar | Zorluk Derecesi | Performans |
---|---|---|---|---|---|
2D Sprite (Texture) | Sprite Renderer kullanılır, Collider eklenir (Box Collider 2D) | Kolay kurulum, yüksek performans | Sadece 2D görünüm sağlar, 3D derinlik eksik | Kolay | Çok yüksek |
3D Cube | 3D Cube objesi kullanılır, Box Collider eklenir | 3D derinlik hissi sağlar, doku ve materyal uygulanabilir | Karmaşık doku kullanımlarında performansı düşürebilir | Orta | Yüksek |
Tilemap (2D için) | Tilemap Collider ile birlikte Tilemap Renderer kullanılır | Kolay kurulum ve geniş alanlarda kullanım | 2D ile sınırlıdır, görsel açıdan basit | Kolay | Çok yüksek |
Procedural Generated Wall | Kodla procedural olarak duvar yaratılır, özel collider’lar eklenir | Esnek ve özelleştirilebilir, oyun içi değişimlere kolayca uyum sağlar | Karmaşık programlama gerektirir, optimizasyon zor olabilir | Zor | Değişken |
3D Custom Wall Mesh | Özel modelleme yapılmış bir mesh ve Mesh Collider kullanılır | Gerçekçi ve özel duvar tasarımları için idealdir | Detaylı modeller performansı düşürebilir, optimizasyon gerekebilir | Zor | Orta |
Physics Material 2D/3D ile Basit Collider | Box veya Capsule Collider ile Physics Material eklenir | Basit ve hızlı kurulum, kayma ve çarpma etkilerini kolayca kontrol edebilme | Sınırlı görsellik sağlar | Kolay | Çok yüksek |
Invisible Collider (Görünmez Bariyer) | Herhangi bir görünür obje olmadan yalnızca collider kullanılır | Kolay ve hafif, çarpma noktalarını belirginleştirir | Görsel bir bariyer olmadığı için anlaşılması zor olabilir | Kolay | Çok yüksek |
3D Terrain veya Detaylı Modelleme | Terrain kenarları veya detaylı modelleme ile özel duvar yüzeyleri oluşturulur | Gerçekçi ve özel yüzeyler için uygundur | Karmaşık yüzeylerde performans kaybı yaşanabilir, optimizasyon zor olabilir | Zor | Orta-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.