Unity’de RectTransform bileşeni, UI (Kullanıcı Arayüzü) elemanlarının konumlandırılması ve boyutlandırılması için kritik bir rol oynar. Inspector penceresinde bu bileşenin çeşitli özellikleri bulunur. Her bir özelliği detaylı olarak açıklayalım ve sayısal örneklerle pekiştirelim.
1. Pos X ve Pos Y (Bağlantılı Konumun X ve Y Koordinatları):
Bu değerler, UI elemanının pivot noktasının, belirlenen anchor (bağlantı) noktalarına göre olan konumunu tanımlar. Başka bir deyişle, elemanın ebeveynine göre yatay (X) ve dikey (Y) eksendeki offset’ini belirtir.
Örnek 1:
Pos X: 50
Pos Y: -20
Bu ayarlar, elemanın pivot noktasını, anchor noktalarına göre 50 birim sağa ve 20 birim aşağıya kaydırır.
Örnek 2:
Pos X: -100
Pos Y: 75
Bu durumda, elemanın pivot noktası, anchor noktalarına göre 100 birim sola ve 75 birim yukarıya kaydırılır.
2. Width ve Height (Genişlik ve Yükseklik):
Bu değerler, UI elemanının genişlik ve yüksekliğini piksel cinsinden belirtir.
Örnek 1:
Width: 200
Height: 100
Elemanın genişliği 200 piksel, yüksekliği ise 100 piksel olacaktır.
Örnek 2:
Width: 150
Height: 300
Bu ayarlar, elemanın genişliğini 150 piksel, yüksekliğini ise 300 piksel olarak belirler.
3. Anchors (Bağlantı Noktaları):
Anchors, elemanın ebeveynine göre nasıl konumlanacağını ve boyutlanacağını belirler. Her bir anchor, ebeveyn RectTransform’unun normalleştirilmiş (0 ile 1 arasında) koordinatlarıdır. Anchor Min, sol alt köşeyi; Anchor Max ise sağ üst köşeyi temsil eder.
Örnek 1:
Anchor Min: (0, 0)
Anchor Max: (1, 1)
Bu ayarlar, elemanın ebeveyninin tamamını kaplamasını sağlar. Eleman, ebeveyninin boyutlarına göre dinamik olarak yeniden boyutlanır.
Örnek 2:
Anchor Min: (0.5, 0.5)
Anchor Max: (0.5, 0.5)
Bu durumda, elemanın anchor noktası ebeveyninin tam ortasına ayarlanır. Elemanın boyutu sabit kalır ve ebeveyninin ortasında konumlanır.
4. Pivot (Dönüş Noktası):
Pivot, elemanın döndüğü veya ölçeklendiği merkezi noktayı belirler. Bu da normalleştirilmiş bir değerdir ve (0.5, 0.5) değeri, elemanın merkezini ifade eder.
Örnek 1:
Pivot: (0, 0)
Bu ayar, pivot noktasını elemanın sol alt köşesine yerleştirir. Dönme veya ölçekleme işlemleri bu noktaya göre yapılır.
Örnek 2:
Pivot: (1, 1)
Bu durumda, pivot noktası elemanın sağ üst köşesine ayarlanır. Dönme veya ölçekleme işlemleri bu köşeye göre gerçekleşir.
5. Rotation (Dönüş):
Rotation, elemanın saat yönünde derece cinsinden döndürülmesini sağlar.
Örnek 1:
Rotation: 45°
Eleman, saat yönünde 45 derece döndürülür.
Örnek 2:
Rotation: -90°
Bu ayar, elemanın saat yönünün tersine 90 derece döndürülmesini sağlar.
6. Scale (Ölçek):
Scale, elemanın X, Y ve Z eksenlerinde ne kadar büyütüleceğini veya küçültüleceğini belirler.
Örnek 1:
Scale X: 1.5
Scale Y: 1.5
Scale Z: 1
Eleman, X ve Y eksenlerinde %150 oranında büyütülür; Z ekseni ise değişmez.
Örnek 2:
Scale X: 0.5
Scale Y: 2
Scale Z: 1
Bu durumda, eleman X ekseninde %50 küçültülür, Y ekseninde ise %200 büyütülür; Z ekseni yine değişmez.
Özet:
Pos X ve Pos Y: Elemanın pivot noktasının, anchor noktalarına göre olan yatay ve dikey offset’ini belirler.
Width ve Height: Elemanın genişlik ve yüksekliğini piksel cinsinden tanımlar.
Anchors: Elemanın ebeveynine göre nasıl konumlanacağını ve boyutlanacağını belirler.
Pivot: Elemanın döndüğü veya ölçeklendiği merkezi noktayı tanımlar.
Rotation: Elemanın saat yönünde derece cinsinden döndürülmesini sağlar.
Scale: Elemanın X, Y ve Z eksenlerinde ne kadar büyütüleceğini veya küçültüleceğini belirler.
Bu özelliklerin doğru kullanımı, UI elemanlarınızın farklı ekran boyutlarına ve çözünürlüklerine uyum sağlamasında kritik bir rol oynar.
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:
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.
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.
Git’in Kurulması: Git’i bilgisayarınıza kurmanız gerekiyor. Git’i resmi web sitesinden işletim sisteminize uygun olarak indirebilirsiniz.
GitHub Hesabı: Bir GitHub hesabınızın olması gerekiyor. Yoksa GitHub üzerinden ücretsiz bir hesap oluşturabilirsiniz.
Adım Adım Projenizi GitHub’a Yükleme
1. Git Deposu Oluşturma
A. Proje Klasörünüzü Hazırlayın
Unity projenizin bulunduğu klasöre gidin. Bu klasör genellikle proje ismiyle adlandırılmıştır ve içinde Assets, Library, ProjectSettings gibi klasörler bulunur.
B. Git Bash veya Komut İstemi’ni Açın
Windows kullanıyorsanız, proje klasörünüzün içine girin, boş bir alana Shift + Sağ Tık yapın ve Git Bash Here seçeneğine tıklayın.
Mac veya Linux kullanıyorsanız, Terminal’i açıp proje klasörüne cd /path/to/your/project komutuyla gidin.
2. .gitignore Dosyası Oluşturma
Unity projeleri, bazı büyük ve gereksiz dosyalar içerir. Bu dosyaları Git’e dahil etmemek için bir .gitignore dosyası oluşturmalısınız.
A. .gitignore Dosyasını Oluşturun
Proje klasörünüzün içinde yeni bir metin dosyası oluşturun ve adını .gitignore olarak ayarlayın.
Windows’ta yeni bir metin belgesi oluşturup adını .gitignore yapabilirsiniz (dosya uzantısını .txt olmamasına dikkat edin).
Mac veya Linux’ta Terminal’de touch .gitignore komutunu kullanabilirsiniz.
B. .gitignore Dosyasının İçeriğini Ayarlayın
.gitignore dosyasını bir metin editörüyle açın (örneğin, Notepad, Notepad++, Visual Studio Code).
kullanıcı_adınız ve depo_adınız kısımlarını kendi bilgilerinize göre düzenleyin.
C. Ana Branşı Ayarlama
Ana branşı main olarak ayarlamak için:
git branch -M main
5. Projeyi GitHub’a Gönderme
Aşağıdaki komutu kullanarak dosyaları GitHub’a yükleyin:
git push -u origin main
Komut çalıştığında, sizden GitHub kullanıcı adınızı ve şifrenizi girmeniz istenebilir. Eğer iki faktörlü kimlik doğrulama kullanıyorsanız, bir Personal Access Token oluşturmanız gerekebilir.
6. Kodlarınızı İnceleme
Kodlarınız artık GitHub’da yüklü olacak.
GitHub üzerinden kodlarınızı görüntüleyebilir ve paylaşabilirsiniz.
Kodlarınızın linkini paylaşırsanız, ben de kodları inceleyebilir ve hata kontrolü yapabilirim.
Notlar ve Öneriler
Dosya Boyutları: Unity projeleri büyük dosyalar içerebilir. GitHub’da dosya boyutu sınırlaması vardır (100 MB). Eğer projede büyük dosyalar varsa, Git Large File Storage (LFS) kullanmanız gerekebilir.
Sürüm Kontrolü: Projenizi GitHub’a yüklemek, sürüm kontrolü yapmanıza ve kodlarınızı güvende tutmanıza yardımcı olur.
Ek Bilgi: Git ve GitHub Kullanımı
Git Nedir?: Git, dosyalarınızın sürümlerini takip eden bir versiyon kontrol sistemidir.
GitHub Nedir?: GitHub, Git depolarınızı çevrimiçi olarak barındırabileceğiniz bir platformdur.
Komutları Nereye Yazacaksınız?: Git komutlarını, proje klasörünüzde Terminal (Mac/Linux) veya Git Bash (Windows) üzerinden çalıştırabilirsiniz.
Olası Sorunlar ve Çözümleri 1
Git Kurulu Değilse: Git yüklü değilse, komutları çalıştıramazsınız. Git’i buradan indirip kurun.
Dosya İsimleri ve Uzantıları: .gitignore dosyasının uzantısı olmamalıdır. Eğer .gitignore.txt gibi bir isimle kaydederseniz, çalışmaz.
Kimlik Doğrulama Sorunları: GitHub’a push yaparken kullanıcı adı ve şifrenizle ilgili sorun yaşarsanız, Personal Access Token kullanmanız gerekebilir. Bunu GitHub ayarlarından oluşturabilirsiniz.
Olası Sorunlar ve Çözümleri 2
1. “Filename too long” Hatası
Bu hata, dosya yolunun uzun olmasından kaynaklanıyor. Özellikle Windows işletim sisteminde, dosya yolu uzunluk sınırını aşıyorsa bu hatayı alabilirsiniz.
Çözüm:
Git Ayarını Değiştirme: Windows’ta uzun dosya yollarını desteklemek için aşağıdaki komutu çalıştırın:
git config --system core.longpaths true
Alternatif Çözüm: .gitignore dosyasına Library klasörünü ekleyerek bu klasördeki dosyaları Git’e eklemeyi engelleyebilirsiniz. Aşağıdaki adımları izleyin:
.gitignore dosyasını açın ve Library/ satırını ekleyin.
Bu adım, Library klasöründeki dosyaları Git’in izlemesini engeller ve daha sonra commit işlemlerinde bu hatayı önler.
2. “git commit -m” Komutundaki Sorunlar
git comit -m "ilk commit"
Burada commit yerine comit yazmışsınız. Doğru komut şu şekilde olmalı:
git commit -m "ilk commit"
3. “src refspec main does not match any” Hatası
Bu hata, “main” dalının henüz oluşturulmamış olması nedeniyle ortaya çıkar. Bu durumu çözmek için önce bir commit yapmalısınız.
Çözüm:
commit İşlemini Doğru Şekilde Yapın:
Eğer commit yapmadıysanız, aşağıdaki komutları kullanarak dosyaları ekleyin ve commit yapın:
git add .
git commit -m "İlk commit"
Ana Dalı Güncelleyin:
Eğer git branch -M main komutunu uyguladıysanız ve yine de bu hatayı alıyorsanız, main dalının oluştuğundan emin olun.
Push İşlemini Tekrar Deneyin:
Başarılı bir şekilde commit yaptıktan sonra aşağıdaki komutla dosyaları GitHub’a gönderin:
git push -u origin main
Genel Özet:
core.longpaths ayarını etkinleştirin.
.gitignore dosyasına Library/ ekleyin.
Commit işlemini doğru bir şekilde yapın.
git push -u origin main komutuyla gönderin.
Bu adımları izleyerek tüm hataları çözebilir ve projeyi başarılı şekilde GitHub’a yükleyebilirsiniz.
4. “could not lock config file” Hatası
Bu hata, gitconfig dosyasını değiştirmek için yönetici iznine ihtiyaç duyduğunuzu gösteriyor. core.longpaths ayarını etkinleştirebilmek için komutu yönetici izinleriyle çalıştırmanız gerekiyor.
Çözüm: Yönetici İzniyle Git Bash Çalıştırma
Git Bash’ı Yönetici Olarak Açın:
Git Bash simgesine sağ tıklayın.
“Run as Administrator” (Yönetici olarak çalıştır) seçeneğini tıklayın.
Komutu Tekrar Çalıştırın:
Git Bash yönetici olarak açıldıktan sonra, şu komutu tekrar girin:
git config --system core.longpaths true
Bu komut, longpaths ayarını etkinleştirir ve uzun dosya yoluyla ilgili hatayı önlemeye yardımcı olur.
5. “fatal: Unable to create” Hatası
Bu hata, .git/index.lock dosyasının mevcut olduğunu ve Git işleminin devam etmesini engellediğini gösterir. Bu durum genellikle başka bir Git işlemi yarım kaldığında veya kilitlendiğinde oluşur. Aşağıdaki adımları takip ederek bu sorunu çözebilirsiniz:
Çözüm Adımları
Kilitleme Dosyasını Manuel Olarak Kaldırın:
Proje dizininize gidin ve index.lock dosyasını bulun. Bu dosya C:/Users/NUR/.git/ klasöründe yer alır.
.git/index.lock dosyasını silin.
Windows’ta bu dosyayı bulmak için:
Proje klasörünü açın.
Gizli dosya ve klasörleri gösterme seçeneğini etkinleştirin (Windows Gezgini > Görünüm > Gizli öğeler).
.git klasörüne girin ve index.lock dosyasını silin.
Git İşlemini Tekrar Deneyin:
Dosyayı sildikten sonra, Git komutlarını tekrar çalıştırabilirsiniz:
git add .
git commit -m "İlk commit"
Bu işlem, kilitleme dosyasını kaldırarak Git işlemlerinin sorunsuz devam etmesini sağlayacaktır. Eğer bu sorun devam ederse, bilgisayarınızı yeniden başlatmayı da deneyebilirsiniz, çünkü bazı durumlarda arka planda çalışan Git işlemleri yeniden başlatılarak kapanır.
Rigibody, Unity’de fizik etkileşimlerini yönetmek için oldukça önemli bir bileşendir ve özellikle oyun nesnelerinin gerçekçi bir şekilde hareket etmesini sağlar. Rigibody’yi detaylı bir şekilde anlamanız, Unity’de fiziksel davranışları yönetmek ve daha gerçekçi oyunlar geliştirmek için önemlidir.
Rigibody Menüsüne Nasıl Ulaşılır?
Unity 3D Proje Ayarları Üzerinden: Unity arayüzünde sahnede herhangi bir nesneyi seçtiğinizde, Inspector paneline gidin.
Rigidbody Ekleme: Çıkan menüde “Rigidbody” yazarak arama yapabilir ve nesnenize bir Rigibody bileşeni ekleyebilirsiniz.
Rigidbody: 3D projeler için kullanılır.
Rigidbody 2D: 2D projeler için özel olarak geliştirilmiş versiyondur.
Rigidbody Çeşitleri
Rigidbody (3D): Üç boyutlu projelerde nesnelerin fiziksel hareketlerini simüle eder.
Rigidbody 2D: İki boyutlu projelerde nesnelerin fiziksel hareketlerini simüle etmek için optimize edilmiştir. Fiziksel hareketler x ve y eksenlerinde gerçekleşir.
Rigidbody’nin Özellikleri ve Ayrıntılı Açıklamaları
Aşağıda Rigidbody bileşeninde yer alan temel özellikleri ve bu özelliklerin ne işe yaradığını açıklıyorum:
Özellik
Açıklama
Kullanım Alanları
Programatik Erişim
Mass (Kütle)
Nesnenin kütlesini belirler. Varsayılan değer 1dir. Kütle ne kadar yüksekse, nesne o kadar yavaş hızlanır ve hız keser.
Araçlar, karakterler, düşen nesneler
rigidbody.mass = 1f;
Drag (Sürüklenme)
Nesnenin havada sürüklenme direncini ayarlar. Drag ne kadar yüksekse, nesne o kadar hızlı yavaşlar.
Araçlar, uzayda hareket eden nesneler
rigidbody.drag = 0.5f;
Angular Drag (Açısal Sürüklenme)
Nesnenin dönüş direncini belirler. Bu değer arttıkça, nesne daha hızlı yavaşlar.
Dönen nesneler, oyuncular
rigidbody.angularDrag = 0.05f;
Use Gravity (Yer Çekimi Kullan)
Bu ayar aktif ise nesne yer çekimine maruz kalır. Kapalı olduğunda ise nesne yer çekiminden bağımsız hareket eder.
Yüzen nesneler, düşen nesneler
rigidbody.useGravity = true;
Is Kinematic (Kinematik)
Nesne fizik kurallarına tabi olmaz, sadece kod veya animasyonlar tarafından kontrol edilir.
Kameralar, hareket eden platformlar
rigidbody.isKinematic = false;
Interpolate (Aralıklandırma)
Nesne hareket ederken, pozisyon değişikliklerinin düzgün bir şekilde yapılmasını sağlar. None, Interpolate ve Extrapolate seçenekleri vardır.
Nesne ile diğer nesneler arasındaki çarpışma tespiti seviyesini belirler. Discrete, Continuous, Continuous Dynamic, Continuous Speculative gibi seçenekleri vardır.
Her bir Rigidbody özelliğine kodla nasıl ulaşabileceğinizi göstermek için detaylı bir tablo hazırladım. Bu tablo, özelliklere nasıl erişileceğini ve bu özelliklerin varsayılan değerlerini içerir.
Özellik
Programatik Kod
Açıklama
Kütle (Mass)
rigidbody.mass = 1f;
Nesnenin kütlesini ayarlar.
Sürüklenme (Drag)
rigidbody.drag = 0.5f;
Nesnenin havada sürüklenme direncini ayarlar.
Açısal Sürüklenme
rigidbody.angularDrag = 0.05f;
Nesnenin dönme direncini belirler.
Yer Çekimi (Use Gravity)
rigidbody.useGravity = true;
Nesneye yer çekiminin uygulanıp uygulanmayacağını belirler.
Kinematik (Is Kinematic)
rigidbody.isKinematic = false;
Nesnenin fizik kurallarına uyup uymayacağını belirler.
Karakaterler: Karakterlerin yer çekimine uygun hareket etmesi ve çevreyle etkileşimde olması sağlanır.
Araçlar: Araçlar yer çekimine uygun hareket eder ve çarpışmalar fiziksel olarak simüle edilir.
Yüzen Nesneler: Yer çekimi kapatılarak nesnelerin sabit bir noktada durması veya havada süzülmesi sağlanır.
Dikkat Edilecek Noktalar:
Kinematik Nesnelerle Çarpışma: Kinematik bir nesne fizik motoruyla değil, manuel olarak kontrol edilir. Bu durumda çarpışma dinamikleri dikkatli bir şekilde yönetilmelidir.
Çarpışma Modları: Hızlı hareket eden nesnelerde “Continuous” mod kullanılmalı. Bu sayede nesne diğer nesnelerden geçmeden çarpışmalar tespit edilebilir.
Yer Çekimi ve Sürüklenme: Bazı durumlarda, nesnelerin daha kontrollü hareket etmesi için yer çekimi ve sürüklenme ayarları optimize edilmelidir.
Rigidbody’nin Uygulanmaması Gereken Nesneler
UI Elemanları: Rigidbody genellikle 3D veya 2D sahne nesneleri için uygundur, UI elemanları için kullanılmaz.
Statik Nesneler: Statik nesnelere Rigidbody eklemek, performansı düşürebilir. Statik nesnelerin fizik motoruyla etkileşime geçmesi gerekmediği için Rigidbody uygulanmaz.
Özet:
Uygulanmaması Gereken Nesneler: UI elemanları ve statik nesnelerde Rigidbody kullanımı gereksizdir.
Rigidbody Menüsü: Unity’de sahne nesnesinin Inspector panelinden “Add Component” > “Rigidbody” yoluyla eklenir.
Çeşitleri: Rigidbody (3D) ve Rigidbody 2D, 3D ve 2D projeler için optimize edilmiştir.
Özellikler ve Kullanımı: Kütle, sürüklenme, yer çekimi gibi özellikleri vardır ve her biri kod ile erişilebilir.
Kullanım Alanları: Karakterler, araçlar gibi fizik motoruna ihtiyaç duyan nesnelerde kullanılır.
Dikkat Edilmesi Gerekenler: Hızlı nesnelerde çarpışma tespiti, yer çekimi ayarları optimize edilmelidir.
Rigidbody Özellikleri ve Değer Aralıkları
Özellik
Değer Aralığı
Önerilen Değer Aralığı
Kullanım Durumları
Mass (Kütle)
0 – ∞
1 – 10
1-3: Karakterler ve küçük nesneler için ideal. 5-10: Araçlar ve ağır nesneler için uygun.
Drag (Sürüklenme)
0 – ∞
0 – 1
0: Hava direnci olmayan nesneler. 0.1-0.5: Hava direnci olan, hızlı yavaşlaması gereken nesneler.
Angular Drag (Açısal Sürüklenme)
0 – ∞
0.05 – 1
0.05-0.1: Karakterler için uygun. 0.5-1: Dönen nesnelerin hızla yavaşlaması gerektiğinde kullanılır.
Use Gravity (Yer Çekimi Kullan)
true / false
–
true: Yer çekimi etkisinde hareket eden nesneler. false: Yüzen veya boşlukta hareket eden nesneler.
Is Kinematic (Kinematik)
true / false
–
true: Fizik motoru dışında, manuel kontrol edilecek nesneler için. false: Fizik kurallarına tabi nesneler için.
Interpolate (Aralıklandırma)
None, Interpolate, Extrapolate
–
None: Düşük performans gereksinimli sahneler. Interpolate: Düşük hızla hareket eden nesneler için uygun. Extrapolate: Hızlı hareket eden nesnelerde pozisyon kaymasını önlemek için ideal.
Discrete: Düşük hızla hareket eden nesneler. Continuous: Hızlı hareket eden nesneler. Continuous Dynamic: Çok hızlı hareket eden nesnelerde çarpışmayı garanti altına almak için. Continuous Speculative: Çarpışma performansını arttırmak için.
Özelliklerin Kullanım Durumları İçin Önerilen Değerler
Aşağıdaki tabloda her bir özellik için önerilen ayarları ve kullanılması gereken durumları detaylandırdım. Bu öneriler, oyun nesnelerinin doğru fizik davranışını sergilemesi için rehber niteliğindedir.
Özellik
Nesne Tipi
Önerilen Değer
Açıklama
Mass (Kütle)
Küçük karakterler
1
Hızlı hareket etmesi gereken küçük karakterler için uygundur.
Ağır araçlar
8-10
Yavaş hızlanması ve durması gereken büyük araçlar ve ağır nesneler için kullanılır.
Drag (Sürüklenme)
Hava direnci düşük nesneler
0
Havada süzülen veya hava direncine ihtiyaç duymayan nesnelerde sıfır olarak bırakılabilir.
Araçlar ve oyuncular
0.1-0.3
Hızla hareket eden nesnelerin hızla yavaşlaması için uygun sürüklenme değeri.
Angular Drag (Açısal Sürüklenme)
Dönen nesneler
0.05
Düşük açısal sürüklenme, nesnenin yavaşça yavaşlamasını sağlar.
Yoğun dönüş gerektiren nesneler
0.5
Nesnenin hızla dönmesini ama hızlıca yavaşlamasını gerektiren durumlarda kullanılır.
Use Gravity (Yer Çekimi Kullan)
Yer çekimli nesneler
true
Yer çekimine tabi tüm nesneler (oyuncular, araçlar).
Yüzen veya boşluktaki nesneler
false
Yer çekiminden bağımsız hareket eden nesneler (uzayda hareket eden nesneler, yüzen objeler).
Is Kinematic (Kinematik)
Sabit hareketli platformlar
true
Fizik motoruna ihtiyaç duymayan, ancak manuel hareket ettirilen nesneler.
Interpolate (Aralıklandırma)
Düşük hızla hareket eden nesneler
Interpolate
Nesnenin hareketinin daha yumuşak görünmesi sağlanır. Hızlı nesnelerde tercih edilir.
Collision Detection (Çarpışma Tespiti)
Yavaş nesneler
Discrete
Çarpışma ihtimali düşük ve yavaş hareket eden nesneler için kullanılır.
Hızlı nesneler
Continuous
Hızlı hareket eden ve diğer nesnelerle sürekli etkileşim halinde olan nesnelerde kullanılır.
Çok hızlı nesneler
Continuous Dynamic
Çok hızlı hareket eden ve çarpışma tespitinin garanti edilmesi gereken nesneler için.
Kısa Özet:
Rigidbody Ayarları: Her özellik için farklı aralıklarda değerler kullanılabilir.
Kullanım Durumları: Nesnenin fiziksel davranışına göre doğru ayarları yapmak önemlidir.
Özel Kullanım Önerileri: Hızlı nesnelerde çarpışma tespiti, yavaş nesnelerde düşük sürüklenme gibi ayarlara dikkat edilmelidir.
Bu değerler, oyun nesnelerinizin fizik davranışlarını optimize etmek için rehber olarak kullanılabilir.
1. Duvarlar Statik mi Olmalı?
Evet, duvarlar genellikle statik olarak ayarlanır.
Static Rigidbody ayarları, nesnelerin fiziksel olarak sabit kalmasını sağlar. Bu, duvarların hareket etmediği ve sadece çarpışma algılama amacıyla kullanıldığı anlamına gelir.
Unity’de Rigidbody eklenmemiş objeler otomatik olarak statik sayılır. Ancak, Rigidbody eklemek isterseniz, duvarlar için Body Type ayarını Static olarak ayarlayabilirsiniz.
Neden Statik?
Statik nesneler, hareket eden nesnelerle çarpıştığında kendileri hareket etmez. Bu nedenle duvarların sabit kalması ve yalnızca hareketli nesnelerin (top gibi) çarpışmada tepki vermesi istenir.
Statik nesneler, işlemci gücünden tasarruf sağlar, çünkü Unity, statik nesneleri fiziksel hesaplamalarda daha verimli işleyebilir.
2. Hareket Eden Top Statik mi Olmalı?
Hayır, hareket eden top dinamik (Dynamic) olmalı.
Dinamik ayar, nesnenin fizik kurallarına göre hareket etmesini sağlar. Yani, hareket eden top için Rigidbody bileşeni eklemeli ve Body Type‘ı Dynamic olarak ayarlamalısınız.
Dinamik bir nesne, kendisine uygulanan kuvvetlere göre hızlanır, yavaşlar veya yön değiştirir. Bu, topun AddForce gibi fonksiyonlarla kontrol edilmesine olanak tanır.
Özetle:
Duvarlar: Statik
Top (Disk): Dinamik
3. Physic Material Özelliği Hangi Nesnelere Verilmeli?
Physic Material özelliği, sürtünme ve sıçrama özelliklerini kontrol etmek için kullanılır. Hangi nesnelere uygulamanız gerektiğini ayrıntılı olarak açıklıyorum:
Disk (Top) İçin Physic Material:
Disk‘e bir Physic Material eklemek, topun duvarlara çarpınca nasıl tepki vereceğini kontrol eder.
Örneğin, Friction değerini düşük yaparak topun kaygan bir yüzeyde gibi hareket etmesini sağlayabilirsiniz. Bounciness değerini artırarak topun çarpışmalardan sonra sıçrama yapmasını sağlayabilirsiniz.
Genellikle hareket eden nesnelere Physic Material eklemek, oyunun fiziksel etkileşimlerini daha ilginç hale getirir.
Duvarlar İçin Physic Material:
Duvarlara da bir Physic Material ekleyebilirsiniz. Bu, top duvara çarptığında nasıl bir tepki alacağını etkiler.
Friction ve Bounciness değerlerini ayarlayarak topun duvardan daha fazla veya daha az sıçramasını sağlayabilirsiniz.
Zemin (Masa) İçin Physic Material:
Eğer topun yere (masa gibi bir yüzeye) temas ettiğinde farklı bir tepki vermesini istiyorsanız, zemine de Physic Material ekleyebilirsiniz.
Zemin üzerinde topun hareketini yavaşlatmak için yüksek bir Friction değeri kullanabilirsiniz.
Physic Material Vermek ve Vermemek Arasındaki Farklar
Physic Material Verildiğinde:
Sürtünme (Friction): Sürtünme değeri düşükse top daha kaygan hareket eder, yüksekse daha yavaşlar.
Sıçrama (Bounciness): Bounciness değeri arttıkça top, çarptığı yüzeyden daha fazla sıçrar.
Bu özellikler, çarpışmalardan sonra topun hızını ve yönünü etkiler. Oyununuza daha doğal veya eğlenceli bir fizik etkisi katmak istiyorsanız, Physic Material kullanmak iyi bir tercihtir.
Physic Material Verilmediğinde:
Sürtünme ve sıçrama etkisi olmaz veya varsayılan çok düşük değerlerde kalır.
Top duvarlara veya zemine çarptığında doğal olmayan veya çok basit bir tepki verir.
Eğer oyunda bu tür fiziksel etkiler istemiyorsanız, Physic Material eklememek daha basit bir fizik davranışı sağlar.
Özet
Duvarlar: Statik olmalı.
Top (Disk): Dinamik olmalı.
Physic Material Kullanımı:
Topa (Disk): Kayganlık ve sıçrama efekti için Physic Material eklemek faydalıdır.
Duvarlara: Topun çarpışmalardan sonra daha fazla veya daha az sıçramasını ayarlamak için ekleyebilirsiniz.
Zemine (Masa): Topun sürtünerek yavaşlamasını sağlamak için eklenebilir.
Physic Material Eklemek ve Eklememek Arasındaki Fark:
Eklediğinizde, sürtünme ve sıçrama etkileri sayesinde daha gerçekçi veya eğlenceli bir fizik deneyimi sunabilirsiniz.
Eklenmediğinde, varsayılan fizik özellikleri uygulanır ve top doğal olmayan bir şekilde durabilir veya tepki verebilir.
Collider bileşeni, Unity’de nesneler arasındaki çarpışmaları ve fiziksel etkileşimleri yönetmek için kullanılır. Collider, fizik motorunun temel bir parçasıdır ve her oyun nesnesinin fiziksel sınırlarını tanımlar. Şimdi Collider’ı detaylı bir şekilde ele alalım.
1. Collider Menüsüne Nasıl Ulaşılır?
Unity’de herhangi bir nesneye Collider eklemek için:
Sahnedeki Nesneyi Seçin: Unity Editor’de bir nesne seçin. Bu nesne bir karakter, araç, platform veya herhangi bir fiziksel etkileşimde bulunmasını istediğiniz obje olabilir.
Collider Ekleme: “Collider” yazarak arama yapın. 3D ve 2D projelere göre uygun Collider çeşitlerinden birini seçin. Örneğin:
3D Proje: Box Collider, Sphere Collider, Capsule Collider gibi seçenekleri göreceksiniz.
2D Proje: Box Collider 2D, Circle Collider 2D gibi 2D projelere özgü Collider seçenekleri mevcut.
Collider eklendikten sonra, nesne belirli bir fiziksel sınır elde eder ve diğer nesnelerle çarpışma veya temas algılayabilir hale gelir.
2. Collider Çeşitleri
Unity, farklı türdeki oyun nesneleri için çeşitli Collider türleri sunar. 3D ve 2D projeler için ayrı Collider türleri bulunur ve her biri farklı geometrik şekillerde çarpışma sınırları oluşturur.
A) 3D Collider Çeşitleri
Box Collider: Küp veya dikdörtgen prizma şeklinde çarpışma sınırları oluşturur. Çoğunlukla küp, kutu veya dikdörtgen nesneler için uygundur.
Sphere Collider: Küresel sınırlar oluşturur, yuvarlak nesneler veya dairesel sınır gerektiren nesneler için uygundur.
Capsule Collider: Silindirik veya kapsül şeklinde bir sınır sağlar. Karakterler veya silindirik nesneler için idealdir.
Mesh Collider: Nesnenin kendi geometrisine uygun özel bir sınır oluşturur. Karmaşık yapılı nesnelerde (örneğin dağınık taşlar, dallar, heykeller) kullanılır. Performansı etkileyebileceği için dikkatli kullanılmalıdır.
Wheel Collider: Araç tekerlekleri gibi yuvarlanan nesneler için özel olarak geliştirilmiş bir Collider türüdür ve sürüş simülasyonları için kullanılır.
B) 2D Collider Çeşitleri
Box Collider 2D: Dikdörtgen veya kare şeklinde 2D Collider sağlar.
Circle Collider 2D: Dairesel 2D Collider oluşturur, yuvarlak nesneler için idealdir.
Capsule Collider 2D: 2D projelerde silindirik veya kapsül şeklinde sınırlar oluşturur.
Polygon Collider 2D: Nesnenin 2D şeklini birebir izleyerek çokgen bir sınır sağlar. Karmaşık ve düzensiz nesneler için idealdir.
Edge Collider 2D: Çizgisel bir çarpışma sınırı oluşturur. Sınır veya çizgi gibi belirli alanları tanımlamak için kullanılır.
3. Collider Kullanım Alanları
Collider’lar, oyun nesnelerinin fizik motoruyla etkileşime geçmesi gereken her durumda kullanılabilir. Özellikle çarpışma veya temas gerektiren durumlarda vazgeçilmezdir. Collider kullanım alanlarına göre birkaç örnek verelim:
Karakter Hareketi ve Çevre Etkileşimi: Karakterlerin zemine basması, platformlar arasında geçiş yapması veya diğer nesnelerle etkileşime girmesi.
Araç Çarpışmaları: Araçların veya taşıtların engellerle çarpışması, düşme veya kayma gibi fiziksel tepkileri vermesi.
Platform ve Zemin: Oyuncunun veya nesnelerin üzerinde durabileceği veya çarpabileceği sabit platformlar.
Sınırlı Alanlar Tanımlama: Örneğin, bir oyun haritasının sınırlarını belirlemek için Edge Collider kullanarak oyuncuların belirli bir alanın dışına çıkmasını engelleyebilirsiniz.
4. Collider Özellikleri ve Ayrıntılı Açıklamaları
Collider özellikleri, nesnenin fiziksel etkileşimini ve çarpışma davranışını ayarlamak için kullanılır. Aşağıda her bir Collider özelliğini ayrıntılı açıklayarak, kullanım alanlarını ve programatik olarak nasıl erişileceğini tablolandırdım.
Özellik
Açıklama
Kullanım Durumları
Programatik Erişim
Is Trigger
Collider’ı “tetikleyici” hale getirir. Çarpışma yerine nesne diğer nesnelerden geçerek sadece tetikleyici işlev görür.
Kapı açma, alan geçişleri, puan bölgeleri
collider.isTrigger = true;
Material
Collider’a bir fizik materyali ekler, bu da sürtünme ve sektirme gibi özellikleri sağlar.
Kaygan zemin, sıçrayan top gibi yüzeyler
collider.material = yourPhysicsMaterial;
Center
Collider’ın nesne üzerindeki merkez noktasını belirler. Çarpışmanın hangi noktadan algılanacağını ayarlar.
Özel temas noktaları gereken nesneler
collider.center = new Vector3(x, y, z);
Radius (Sphere Collider)
Küresel Collider’ın yarıçapını belirler. Küçük nesnelerde daha düşük, büyük nesnelerde daha yüksek bir değer ayarlanır.
Küçük toplar, geniş çemberler
sphereCollider.radius = 0.5f;
Size (Box Collider)
Box Collider’ın boyutlarını belirler. Çarpışmanın dikdörtgenin belirli boyutlarında algılanmasını sağlar.
Küpler, platformlar gibi nesneler
boxCollider.size = new Vector3(x, y, z);
Direction (Capsule Collider)
Kapsül Collider’ın yönünü belirler (X, Y veya Z ekseni). Bu, kapsülün hangi yöne uzandığını belirler.
Dikey veya yatay yön gerektiren nesneler
capsuleCollider.direction = 1;
Convex (Mesh Collider)
Mesh Collider’ı daha performanslı hale getirir, ancak karmaşık yapılı nesnelerde keskin köşeleri ortadan kaldırabilir.
Karmaşık objeler, ancak performans gerektiren durumlar
meshCollider.convex = true;
5. Collider Özelliklerinin Değer Aralıkları ve Kullanım Durumları
Collider özelliklerinin belirli değer aralıkları bulunur. Her özelliğin ideal aralığını ve kullanım durumlarına göre önerilen değerleri burada detaylandırıyorum:
Özellik
Değer Aralığı
Önerilen Değer Aralığı
Kullanım Durumları
Is Trigger
true / false
true veya false
true: Geçiş gerektiren durumlar için (örneğin bir kapının açılması). false: Fiziksel çarpışma gerektiren nesneler için kullanılır.
Material – Bounciness
0 – 1
0.1 – 0.8
0.1: Az sıçrama gerektiren yüzeyler için. 0.8: Yüksek sıçrama gerektiren nesneler (örneğin zıplayan bir top).
Material – Friction
0 – 1
0.2 – 0.6
0.2: Kaygan yüzeyler. 0.6: Yüksek sürtünmeli yüzeyler için uygundur (örneğin pürüzlü zemin).
Center
-∞ to ∞ (x, y, z ekseni)
(0,0,0) varsayılan
Nesnenin çarpışmasının merkezde olmasını istemediğiniz durumlarda farklı değerlere ayarlanabilir.
Radius (Sphere Collider)
0 – ∞
0.1 – 1
0.1: Küçük, yuvarlak nesneler için. 1: Büyük çember şeklinde etkileşim alanı gerektiren nesnelerde kullanılır.
Size (Box Collider)
0 – ∞ (x, y, z ekseni)
Nesnenin boyutuna göre
Nesnenin boyutlarına uygun bir şekilde ayarlanmalıdır. Örneğin, küçük nesneler için daha düşük, büyük nesneler için daha yüksek değerler.
true: Karmaşık modellerin performansını arttırmak için kullanılır. false: Karmaşık modellerin birebir çarpışma sınırlarını simüle etmek için.
6. Collider Kullanımında Dikkat Edilmesi Gerekenler
Karmaşık Mesh Collider Kullanımı: Performansı doğrudan etkiler. Özellikle detaylı objelerde Mesh Collider performans düşüşüne neden olabilir. Mümkünse, karmaşık şekillerde Convex özelliği kullanarak performansı arttırabilirsiniz.
Trigger Kullanımı: Trigger, bir çarpışma yerine tetikleyici olarak çalışır ve fiziksel etkileşimi ortadan kaldırır. Bu, kapılar, görünmez sınırlar veya puanlama bölgelerinde kullanılabilir.
Material Ayarları: Farklı materyallerle sürtünme ve sıçrama ayarlarını yapabilirsiniz. Örneğin, zıplama gerektiren nesnelerde “Bounciness” yüksek ayarlanırken, kaygan zeminlerde “Friction” düşük ayarlanmalıdır.
Özet
Programatik Erişim: Collider’ın tüm özelliklerine kodla ulaşılabilir ve ihtiyaç duyulan her ayar yapılabilir.
Collider Ekleme: Nesneye “Add Component” üzerinden Collider eklenir.
Çeşitleri: 3D ve 2D projelerde farklı Collider türleri vardır.
Özellikler: Material, Trigger, Radius gibi özellikler, her Collider türüne özel ayarlanabilir.
Kullanım Alanları: Çarpışma, geçiş veya sınırlı alan tanımlamalarında kullanılır.
Unity’de Main Camera, oyun dünyasını ekrana yansıtmak için kullanılan temel bileşendir. Kamera ayarlarını detaylıca anlamak, oyuncuya doğru görsel deneyimi sağlamak için oldukça önemlidir. Main Camera, özellikle görüntü açısı, derinlik, yakınlaştırma gibi ayarlarla birlikte farklı perspektifler sunabilir.
1. Main Camera Menüsüne Nasıl Ulaşılır?
Unity’de Main Camera, yeni bir sahne oluşturulduğunda otomatik olarak eklenir. Sahneye eklenmiş olan Main Camera bileşenine ulaşmak için:
Hierarchy Panelinde “Main Camera” Nesnesini Bulun: Unity’nin Hierarchy panelinde otomatik olarak “Main Camera” adında bir nesne yer alır. Bu nesne, sahnede oyuncunun göreceği görüntüyü belirler.
Inspector Panelinde Main Camera Özelliklerini Görüntüleme: “Main Camera” nesnesini seçtiğinizde, sağ tarafta yer alan Inspector panelinde kameraya ait tüm ayarları ve özellikleri görebilirsiniz.
Yeni Kamera Eklemek: Eğer sahnenize başka bir kamera eklemek istiyorsanız, Hierarchy paneline sağ tıklayarak Camera seçeneğini seçebilirsiniz. Böylece farklı kamera açılarında görüntü almak için çoklu kamera sistemi oluşturabilirsiniz.
2. Main Camera Çeşitleri
Unity’de Main Camera, hem 2D hem de 3D projeler için özelleştirilebilir ve kullanılır. Kameraların türleri, proje ayarlarına göre farklılık gösterir.
A) 3D Kamera
3D Kamera: Varsayılan kamera, 3D sahnelerde kullanılır ve üç boyutlu perspektif sağlar. Bu kameralar derinlik algısı oluşturarak nesneleri uzaklıklarına göre farklı boyutlarda gösterir. Örneğin, uzaktaki nesneler daha küçük, yakındaki nesneler ise daha büyük görünür.
B) 2D Kamera
2D Kamera: 2D projeler için kullanılan bir kamera türüdür. Perspektif yerine ortografik (yanal) görünüm sağlar ve bu nedenle derinlik oluşturmaz. Tüm nesneler uzaklıklarına bakılmaksızın aynı boyutta görünür. Özellikle platform oyunlarında ve 2D bulmacalarda tercih edilir.
3. Main Camera Özellikleri ve Ayrıntılı Açıklamaları
Main Camera’nın temel özelliklerini, ne işe yaradıklarını, kullanıldıkları durumları ve programatik olarak nasıl erişileceğini tabloda detaylandırdım:
Özellik
Açıklama
Kullanım Durumları
Programatik Erişim
Clear Flags
Arka planın nasıl temizleneceğini belirler. Skybox, Solid Color, Depth Only ve Don't Clear seçenekleri vardır.
Skybox: Açık alanlarda gökyüzü efekti için. Solid Color: Kapalı alanlar için.
camera.clearFlags = CameraClearFlags.Skybox;
Background
Arka plan rengini belirler. Kamera bir Skybox ile temizlenmiyorsa, bu renk arka planda görünür.
Kapalı alanlarda veya minimal sahnelerde arka plan rengini belirlemek için.
camera.backgroundColor = Color.black;
Culling Mask
Kameranın hangi katmanlardaki nesneleri göstereceğini seçer.
Sadece belirli nesneleri göstermek için katmanlar arasında filtreleme yapılır.
camera.cullingMask = LayerMask.GetMask("UI");
Projection (Projeksiyon)
Kameranın nesneleri nasıl projekte edeceğini belirler. Perspective ve Orthographic seçenekleri vardır.
Perspective: 3D sahneler için uygundur. Orthographic: 2D sahnelerde tercih edilir.
camera.orthographic = true;
Field of View (Görüş Alanı)
Perspektif modunda kameranın görüş açısını derece olarak belirler.
3D oyunlarda geniş veya dar açılı kamera görünümü ayarlamak için.
camera.fieldOfView = 60f;
Orthographic Size
Ortoğrafik modda kameranın görünüm boyutunu belirler.
2D oyunlarda kamera yakınlaştırma veya uzaklaştırma işlemleri için.
camera.orthographicSize = 5f;
Clipping Planes
Kamera tarafından görüntülenebilecek minimum ve maksimum mesafeleri ayarlar (Near ve Far).
Uzak mesafelerdeki nesneleri gizlemek veya görünür alanı sınırlandırmak için.
camera.nearClipPlane = 0.3f;
Depth
Kamera derinliğini belirler. Birden fazla kamera kullanıldığında, düşük değerli kameralar önce render edilir.
HUD veya harita gibi üst üste binen kamera görüntüleri için.
camera.depth = 1;
Rendering Path
Kameranın hangi render yolunu kullanacağını belirler. Forward, Deferred, Legacy Vertex Lit seçenekleri vardır.
Grafik kalitesi ve performans gereksinimlerine göre ayar yapılır.
camera.renderingPath = RenderingPath.Forward;
Target Texture
Kameranın görüntüsünü bir Render Texture’a yönlendirmeye yarar. Bu sayede görüntü başka bir yüzeyde gösterilebilir.
Ekran yansıtma veya kamera görüntüsünü bir nesneye projekte etme.
camera.targetTexture = myRenderTexture;
HDR (High Dynamic Range)
Yüksek dinamik aralık modunu aktif eder. HDR renk skalasını genişleterek daha canlı renkler sağlar.
Yüksek grafik kalitesi gerektiren durumlarda.
camera.allowHDR = true;
MSAA (Multi-Sample Anti-Aliasing)
Kenar yumuşatma efektini açar. Nesnelerdeki keskin kenarları yumuşatır.
Görsel kaliteyi artırmak için kullanılır, özellikle kıvrımlı yüzeylerde.
camera.allowMSAA = true;
Target Display
Kameranın görüntüsünün hangi ekranda görüntüleneceğini seçer.
Çok ekranlı projeksiyonlar veya oyunlar için kullanılır.
camera.targetDisplay = 0;
4. Main Camera Özelliklerinin Değer Aralıkları ve Kullanım Durumları
Aşağıdaki tabloda her bir Main Camera özelliği için önerilen değer aralıklarını ve hangi durumlarda hangi değerlerin kullanılmasının uygun olduğunu detaylandırdım:
Özellik
Değer Aralığı
Önerilen Değerler
Kullanım Durumları
Clear Flags
Skybox, Solid Color, Depth Only, Don’t Clear
Skybox (3D Açık alanlarda), Solid Color (Kapalı alanlarda)
Gökyüzü efekti gereken dış mekanlarda Skybox, kapalı mekanlarda Solid Color kullanılır.
Background
Renk paleti değerleri
Sahne tasarımına göre renk seçimi
Kapalı alanlarda koyu renkler veya düz sahnelerde daha soft renkler tercih edilir.
Culling Mask
Herhangi bir katman veya katman grubu
Yalnızca gerekli katmanları gösterin
UI elemanları, HUD veya belirli nesneler dışında diğer katmanların gizlenmesi için kullanılır.
Projection (Projeksiyon)
Perspective veya Orthographic
Perspective (3D), Orthographic (2D)
3D oyunlarda Perspective, 2D oyunlarda Orthographic modu idealdir.
Field of View
1 – 179 derece
60-90 derece
3D oyunlarda geniş açılı kamera görünümü için 60 derece veya daha geniş açılar kullanılır.
Orthographic Size
0 – ∞ (ortografik modda)
5-10
2D oyunlarda sahneye göre uygun bir yakınlaştırma için.
Clipping Planes
Near: 0.01 – ∞, Far: 0.01 – ∞
Near: 0.3, Far: 1000
Performans ve görüş alanı sınırlaması için yakın ve uzak sınırları belirleyin.
Depth
-∞ to ∞
0 (Varsayılan)
Birden fazla kamerada, daha yüksek değere sahip kameralar üste gelir ve HUD için genellikle daha yüksek değer verilir.
Rendering Path
Forward, Deferred, Legacy Vertex Lit
Forward (Mobil), Deferred (PC)
Grafik kalitesi ve performans gereksinimlerine göre ayar yapılır.
Target Texture
Render Texture seçimi
–
Ekran yansıtma, güvenlik kameraları veya diğer ekran görüntüleme alanlarında kullanılır.
HDR
true / false
true (PC), false (Mobil)
Yüksek grafik kalitesi gereken PC projelerinde aktif edilmelidir.
MSAA
true / false
true
Görüntü kalitesini artırmak için kıvrımlı yüzeylerde MSAA aktif edilmelidir.
Target Display
0 – Ekran sayısı kadar
0 (Varsayılan ekran)
Çok ekranlı projeler veya VR deneyimleri için ekran seçimi yapılabilir.
5. Main Camera Kullanım Alanları ve Dikkat Edilecekler
Kullanım Alanları:
Oyun Sahnesi Görüntüleme: Kamera, oyuncuya oyunun oynandığı alanı göstermek için kullanılır.
Sinema ve Animasyon Sahneleri: Sinematik sahnelerde farklı kamera açıları kullanarak hikaye anlatımı yapılır.
UI ve HUD Görüntüleme: Üst üste gelen kamera görüntüleriyle arayüz ve HUD ekranları için farklı kamera kullanımı.
Dikkat Edilecek Noktalar:
Field of View Ayarları: Görüş açısının çok geniş olması “balık gözü” etkisi yaratabilir; dar bir açı ise görüş alanını kısıtlar.
Clipping Planes: Çok yakın veya çok uzak Clipping Plane ayarları performansı etkileyebilir ve gereksiz nesneleri görüntüleyerek FPS düşüşüne sebep olabilir.
HDR ve MSAA Kullanımı: HDR ve MSAA özellikleri, grafik kalitesini artırır ancak düşük güçlü cihazlarda performans sorunları yaratabilir.
Uygulanmaması Gereken Nesneler:
Sabit ve Görünmez Nesneler: Kamera, sadece oyun sahnesinde görünmesi gereken nesneleri görüntüler; sabit veya görünmez nesnelerde gerek yoktur.
İkinci Kamera Gerektirmeyen Küçük Projeler: Küçük projelerde veya tek kamera ile yönetilebilecek sahnelerde çoklu kamera kullanımı gereksizdir.
Özet:
Önerilen Ayarlar: 3D projelerde geniş açılar, HDR, MSAA gibi özellikler; 2D projelerde ortografik görünüm ve düşük Field of View kullanımı önerilir.
Kamera Erişimi: Kamera ayarları “Main Camera” nesnesi üzerinden Inspector panelinde görüntülenebilir ve düzenlenebilir.
Çeşitleri: 3D ve 2D projeler için Perspective ve Orthographic projeksiyon modları bulunur.
Özellikler: Clear Flags, Field of View, Depth gibi özellikler bulunur; her biri kodla kontrol edilebilir.
RectTransform
Unity’de RectTransform bileşeni, UI (Kullanıcı Arayüzü) elemanlarının konumlandırılması ve boyutlandırılması için kritik bir rol oynar. Inspector penceresinde bu bileşenin çeşitli özellikleri bulunur. Her bir özelliği detaylı olarak açıklayalım ve sayısal örneklerle pekiştirelim.
1. Pos X ve Pos Y (Bağlantılı Konumun X ve Y Koordinatları):
Bu değerler, UI elemanının pivot noktasının, belirlenen anchor (bağlantı) noktalarına göre olan konumunu tanımlar. Başka bir deyişle, elemanın ebeveynine göre yatay (X) ve dikey (Y) eksendeki offset’ini belirtir.
Örnek 1:
Pos X: 50
Pos Y: -20
Bu ayarlar, elemanın pivot noktasını, anchor noktalarına göre 50 birim sağa ve 20 birim aşağıya kaydırır.
Örnek 2:
Pos X: -100
Pos Y: 75
Bu durumda, elemanın pivot noktası, anchor noktalarına göre 100 birim sola ve 75 birim yukarıya kaydırılır.
2. Width ve Height (Genişlik ve Yükseklik):
Bu değerler, UI elemanının genişlik ve yüksekliğini piksel cinsinden belirtir.
Örnek 1:
Width: 200
Height: 100
Elemanın genişliği 200 piksel, yüksekliği ise 100 piksel olacaktır.
Örnek 2:
Width: 150
Height: 300
Bu ayarlar, elemanın genişliğini 150 piksel, yüksekliğini ise 300 piksel olarak belirler.
3. Anchors (Bağlantı Noktaları):
Anchors, elemanın ebeveynine göre nasıl konumlanacağını ve boyutlanacağını belirler. Her bir anchor, ebeveyn RectTransform’unun normalleştirilmiş (0 ile 1 arasında) koordinatlarıdır. Anchor Min, sol alt köşeyi; Anchor Max ise sağ üst köşeyi temsil eder.
Örnek 1:
Anchor Min: (0, 0)
Anchor Max: (1, 1)
Bu ayarlar, elemanın ebeveyninin tamamını kaplamasını sağlar. Eleman, ebeveyninin boyutlarına göre dinamik olarak yeniden boyutlanır.
Örnek 2:
Anchor Min: (0.5, 0.5)
Anchor Max: (0.5, 0.5)
Bu durumda, elemanın anchor noktası ebeveyninin tam ortasına ayarlanır. Elemanın boyutu sabit kalır ve ebeveyninin ortasında konumlanır.
4. Pivot (Dönüş Noktası):
Pivot, elemanın döndüğü veya ölçeklendiği merkezi noktayı belirler. Bu da normalleştirilmiş bir değerdir ve (0.5, 0.5) değeri, elemanın merkezini ifade eder.
Örnek 1:
Pivot: (0, 0)
Bu ayar, pivot noktasını elemanın sol alt köşesine yerleştirir. Dönme veya ölçekleme işlemleri bu noktaya göre yapılır.
Örnek 2:
Pivot: (1, 1)
Bu durumda, pivot noktası elemanın sağ üst köşesine ayarlanır. Dönme veya ölçekleme işlemleri bu köşeye göre gerçekleşir.
5. Rotation (Dönüş):
Rotation, elemanın saat yönünde derece cinsinden döndürülmesini sağlar.
Örnek 1:
Rotation: 45°
Eleman, saat yönünde 45 derece döndürülür.
Örnek 2:
Rotation: -90°
Bu ayar, elemanın saat yönünün tersine 90 derece döndürülmesini sağlar.
6. Scale (Ölçek):
Scale, elemanın X, Y ve Z eksenlerinde ne kadar büyütüleceğini veya küçültüleceğini belirler.
Örnek 1:
Scale X: 1.5
Scale Y: 1.5
Scale Z: 1
Eleman, X ve Y eksenlerinde %150 oranında büyütülür; Z ekseni ise değişmez.
Örnek 2:
Scale X: 0.5
Scale Y: 2
Scale Z: 1
Bu durumda, eleman X ekseninde %50 küçültülür, Y ekseninde ise %200 büyütülür; Z ekseni yine değişmez.
Özet:
Pos X ve Pos Y: Elemanın pivot noktasının, anchor noktalarına göre olan yatay ve dikey offset’ini belirler.
Width ve Height: Elemanın genişlik ve yüksekliğini piksel cinsinden tanımlar.
Anchors: Elemanın ebeveynine göre nasıl konumlanacağını ve boyutlanacağını belirler.
Pivot: Elemanın döndüğü veya ölçeklendiği merkezi noktayı tanımlar.
Rotation: Elemanın saat yönünde derece cinsinden döndürülmesini sağlar.
Scale: Elemanın X, Y ve Z eksenlerinde ne kadar büyütüleceğini veya küçültüleceğini belirler.
Bu özelliklerin doğru kullanımı, UI elemanlarınızın farklı ekran boyutlarına ve çözünürlüklerine uyum sağlamasında kritik bir rol oynar.
Unity’de Kamera bileşeni, oyun dünyasını oyuncuya sunan temel unsurlardan biridir. Bu bileşen, hem 2D hem de 3D projelerde kullanılır ve Inspector penceresinde çeşitli ayarlarla özelleştirilebilir. Aşağıda, Kamera bileşeninin Inspector penceresindeki her bir satırı, komutu ve açılan menüyü detaylı olarak açıklayalım.
1. Clear Flags (Temizleme Bayrakları):
Bu ayar, kameranın her karede ekranın hangi bölümlerini temizleyeceğini belirler. Dört seçenek vardır:
Skybox: Varsayılan ayardır. Kamera, sahnenin geri kalanını çizmeden önce ekranı skybox ile doldurur. Eğer skybox yoksa, Background (Arka Plan) rengi kullanılır.
Solid Color: Kamera, ekranı tek bir renkle doldurur. Bu renk, Background ayarında belirlenir.
Depth Only: Kamera, yalnızca derinlik bilgisini temizler; renk bilgisini korur. Bu, birden fazla kameranın kullanıldığı durumlarda üst üste bindirme efektleri için kullanılır.
Don’t Clear: Kamera, ne renk ne de derinlik bilgisini temizler. Bu, özel efektler veya belirli optimizasyonlar için kullanılır, ancak dikkatli kullanılmalıdır.
2. Background (Arka Plan):
Kamera, Clear Flags ayarı Solid Color olarak ayarlandığında, ekranın temizleneceği rengi belirler. Renk seçici aracılığıyla istenilen renk seçilebilir.
3. Culling Mask (Görünürlük Maskesi):
Kameranın hangi katmanlardaki (layer) nesneleri render edeceğini belirler. Örneğin, sadece “Player” ve “Environment” katmanlarını seçerek, kamera yalnızca bu katmanlardaki nesneleri çizer.
4. Projection (Projeksiyon):
Kameranın sahneyi nasıl projekte edeceğini belirler. İki seçenek vardır:
Perspective (Perspektif): Gerçek dünyadaki gibi, uzak nesneler daha küçük görünür. 3D projelerde derinlik algısı oluşturmak için kullanılır.
Orthographic (Ortografik): Nesnelerin boyutu mesafeden etkilenmez; tüm nesneler aynı boyutta görünür. Genellikle 2D projelerde veya izometrik görünümlerde tercih edilir.
5. Field of View (Görüş Alanı):
Sadece Perspective projeksiyonunda aktiftir. Kameranın yatay veya dikey eksende ne kadar geniş bir alanı göreceğini derece cinsinden belirler. Örneğin, 60 derece dar bir görüş alanı sağlarken, 90 derece daha geniş bir alanı kapsar.
6. Size (Boyut):
Sadece Orthographic projeksiyonunda aktiftir. Kameranın dikey eksende ne kadar alanı kapsayacağını belirler. Örneğin, 5 birimlik bir değer, kameranın yukarıdan aşağıya 5 birimlik bir alanı görmesini sağlar.
7. Clipping Planes (Kesme Düzlemleri):
Kameranın hangi mesafeler arasındaki nesneleri render edeceğini belirler.
Near (Yakın): Kameraya en yakın render edilecek mesafe. Örneğin, 0.3 birim.
Far (Uzak): Kameraya en uzak render edilecek mesafe. Örneğin, 1000 birim.
Kullanım Alanları:
3D Projeler: Sahnede çok uzak veya çok yakın nesnelerin render edilmesini kontrol etmek için kullanılır.
2D Projeler: Genellikle kullanılmaz, çünkü 2D projelerde derinlik algısı yoktur.
Örnek:
Bir sahnede çok uzaktaki nesnelerin render edilmesini istemiyorsanız, Far değerini düşürerek bu nesnelerin render edilmesini engelleyebilirsiniz.
8. Viewport Rect (Görüş Alanı Dikdörtgeni):
Kameranın ekranın hangi bölümüne render edeceğini belirler. Dört değer içerir:
X: Yatay başlangıç noktası (0 ile 1 arasında).
Y: Dikey başlangıç noktası (0 ile 1 arasında).
W (Width): Genişlik (0 ile 1 arasında).
H (Height): Yükseklik (0 ile 1 arasında).
Örneğin, X=0, Y=0, W=0.5, H=0.5 ayarları, kameranın ekranın sol alt çeyreğine render etmesini sağlar.
Kullanım Alanları:
3D ve 2D Projeler: Ekranın belirli bir bölümüne render yapmak veya çoklu kamera kurulumlarında farklı kameraların farklı ekran bölümlerine render yapmasını sağlamak için kullanılır.
Örnek:
Bir oyunda, ana oyun ekranını ekranın sol yarısında, harita ekranını ise sağ yarısında göstermek istiyorsanız, iki farklı kamera kullanarak Viewport Rect ayarlarını buna göre yapabilirsiniz.
9. Depth (Derinlik):
Birden fazla kamera kullanıldığında, hangi kameranın önce render edileceğini belirler. Daha yüksek derinlik değerine sahip kameralar, daha düşük değerlere sahip olanların üzerine çizilir.
Kullanım Alanları:
3D ve 2D Projeler: Çoklu kamera kurulumlarında, hangi kameranın ön planda olacağını belirlemek için kullanılır.
Örnek:
Bir oyunda, ana oyun ekranını gösteren kameranın Depth değeri 0, kullanıcı arayüzünü (UI) gösteren kameranın Depth değeri ise 1 olarak ayarlanabilir. Bu sayede, arayüz elemanları oyun ekranının üzerinde görüntülenir.
10. Rendering Path (Render Yolu):
Bu ayar, kameranın sahneyi nasıl render edeceğini belirler. Farklı render yolları, performans ve görsel kalite üzerinde doğrudan etkiye sahiptir.
Seçenekler:
Use Player Settings (Oyuncu Ayarlarını Kullan): Proje ayarlarında belirlenen render yolunu kullanır.
Forward (İleri): Her nesne, her ışık için ayrı ayrı render edilir. Mobil cihazlar ve düşük donanımlı sistemler için uygundur.
Deferred (Ertelenmiş): Tüm nesneler önce bir kez render edilir, ardından ışıklandırma uygulanır. Yüksek kaliteli ışıklandırma gerektiren projeler için uygundur.
Kullanım Alanları:
3D Projeler: Işıklandırma ve performans ihtiyaçlarına göre uygun render yolu seçilir.
2D Projeler: Genellikle Forward render yolu kullanılır, çünkü 2D projelerde ışıklandırma daha basittir.
Örnek:
Bir sahnede çok sayıda dinamik ışık kaynağı varsa ve yüksek kaliteli ışıklandırma isteniyorsa, Deferred render yolu tercih edilebilir.
11. Target Texture (Hedef Doku):
Bu ayar, kameranın çıktısını bir Render Texture‘a yönlendirmenize olanak tanır. Render Texture, kameranın görüntüsünü bir doku olarak saklar ve bu dokuyu farklı amaçlar için kullanabilirsiniz.
Kullanım Alanları:
3D Projeler: Güvenlik kameraları, arka plan yansımaları veya portal efektleri gibi durumlarda kullanılır.
2D Projeler: Minimap (küçük harita) veya resim içinde resim (PIP) gibi özellikler için tercih edilir.
Örnek:
Bir güvenlik kamerasının görüntüsünü oyun içindeki bir monitörde göstermek istiyorsanız, kameranın Target Texture ayarını bir Render Texture’a yönlendirerek bu efekti elde edebilirsiniz.
12. Occlusion Culling (Gizleme İptali):
Bu özellik, kameranın görüş alanında olmayan nesnelerin render edilmesini engelleyerek performansı artırır. Sadece kameranın görebileceği nesneler render edilir, böylece gereksiz işlem yükü azaltılır.
Kullanım Alanları:
3D Projeler: Büyük ve karmaşık sahnelerde performansı optimize etmek için kullanılır.
2D Projeler: Genellikle kullanılmaz, çünkü 2D projelerde derinlik ve gizleme kavramları sınırlıdır.
Örnek:
Bir şehir sahnesinde, oyuncunun bulunduğu sokakta olmayan binaların render edilmesini engelleyerek performansı artırabilirsiniz.
13. Allow HDR (HDR’ye İzin Ver):
Bu ayar, kameranın Yüksek Dinamik Aralık (HDR) ile render yapmasına olanak tanır. HDR, sahnedeki parlak ve karanlık alanlar arasındaki kontrastı artırarak daha gerçekçi ve zengin görseller elde etmenizi sağlar.
Kullanım Alanları:
3D Projeler: HDR, özellikle 3D projelerde ışıklandırma ve materyal yansımalarını daha gerçekçi hale getirir. Parlak ışık kaynakları ve yansımalar, HDR sayesinde daha etkileyici görünür.
2D Projeler: 2D projelerde HDR kullanımı daha sınırlıdır. Ancak, belirli efektler veya post-processing işlemleri için tercih edilebilir.
Örnek:
Bir sahnede güneş ışığını simüle ediyorsanız, HDR’yi etkinleştirerek ışığın parlaklığını ve yansımalarını daha etkileyici hale getirebilirsiniz.
14. Allow MSAA (MSAA’ya İzin Ver):
Multi-Sample Anti-Aliasing (MSAA), sahnedeki kenarların daha yumuşak görünmesini sağlayarak “jaggies” olarak bilinen tırtıklı kenarları azaltır.
Kullanım Alanları:
3D Projeler: 3D sahnelerde kenar yumuşatma için yaygın olarak kullanılır. Özellikle yüksek çözünürlüklü ekranlarda daha pürüzsüz görseller elde etmek için etkilidir.
2D Projeler: 2D projelerde de kullanılabilir, ancak genellikle 2D sprite’lar için diğer anti-aliasing yöntemleri tercih edilir.
Örnek:
Bir sahnede ince detaylara sahip bir modeliniz varsa, MSAA’yı etkinleştirerek bu detayların daha net ve pürüzsüz görünmesini sağlayabilirsiniz.
Bu ayar, performansı artırmak için çözünürlüğün dinamik olarak ayarlanmasına olanak tanır. Özellikle performansın kritik olduğu durumlarda, çözünürlük düşürülerek kare hızı artırılabilir.
Kullanım Alanları:
3D Projeler: Yoğun grafik işlemlerinin olduğu sahnelerde performansı dengelemek için kullanılır.
2D Projeler: Genellikle 2D projelerde ihtiyaç duyulmaz, ancak performans sorunları yaşanıyorsa düşünülebilir.
Örnek:
Bir sahnede çok sayıda ışık kaynağı ve karmaşık modeller varsa, dinamik çözünürlüğü etkinleştirerek performans düşüşlerini minimize edebilirsiniz.
16. Target Display (Hedef Ekran):
Kameranın çıktısının hangi ekrana yönlendirileceğini belirler. Unity, birden fazla ekran desteği sunar ve bu ayar sayesinde kameranın çıktısını belirli bir ekrana yönlendirebilirsiniz.
Kullanım Alanları:
3D ve 2D Projeler: Her iki tür projede de, çoklu ekran kurulumlarında farklı kameraların farklı ekranlara yönlendirilmesi için kullanılır.
Örnek:
Bir oyun uygulamasında, ana oyun ekranını bir ekranda, harita veya envanter ekranını başka bir ekranda göstermek istiyorsanız, bu ayarı kullanarak kameraları ilgili ekranlara yönlendirebilirsiniz.
17. Sensor Type (Sensör Türü):
Fiziksel kamera etkinleştirildiğinde, kameranın sensör boyutunu belirler. Farklı kamera modellerine göre önceden tanımlanmış sensör boyutları seçilebilir veya özel değerler girilebilir.
Kullanım Alanları:
3D Projeler: Belirli bir kamera modelinin sensör boyutunu simüle etmek için kullanılır.
2D Projeler: Genellikle kullanılmaz.
Örnek:
Bir sahnede, belirli bir film kamerasının görünümünü yakalamak istiyorsanız, o kameranın sensör boyutunu seçerek benzer bir perspektif elde edebilirsiniz.
18. Focal Length (Odak Uzaklığı):
Kameranın odak uzaklığını milimetre cinsinden belirler. Daha düşük değerler geniş açılı, daha yüksek değerler ise dar açılı (zoom) görüntüler sağlar.
Kullanım Alanları:
3D Projeler: Sahnenin perspektifini ve alan derinliğini kontrol etmek için kullanılır.
Örnek:
Bir sahnede geniş bir alanı göstermek istiyorsanız, odak uzaklığını 18mm gibi düşük bir değere ayarlayabilirsiniz. Yakın çekim bir sahne için ise 85mm gibi yüksek bir değer kullanabilirsiniz.
19. Sensor Size (Sensör Boyutu):
Bu ayar, kameranın sensörünün genişlik (X) ve yükseklik (Y) değerlerini milimetre cinsinden belirler. Sensör boyutu, kameranın görüş alanını ve perspektifini doğrudan etkiler.
Kullanım Alanları:
3D Projeler: Belirli bir kamera modelinin sensör boyutunu simüle etmek veya özel perspektif efektleri oluşturmak için kullanılır.
2D Projeler: Genellikle kullanılmaz, ancak belirli durumlarda özel efektler için düşünülebilir.
Örnek:
Bir sinematik sahnede, belirli bir film kamerasının görünümünü yakalamak istiyorsanız, o kameranın sensör boyutunu ayarlayarak benzer bir perspektif elde edebilirsiniz.
20. Lens Shift (Lens Kaydırma):
Bu ayar, kameranın lensinin yatay (X) ve dikey (Y) eksenlerde ne kadar kaydırılacağını belirler. Bu özellik, özellikle mimari çekimlerde perspektif düzeltmeleri yapmak için kullanılır.
Kullanım Alanları:
3D Projeler: Binaların veya yüksek yapılarının çekimlerinde, perspektif bozulmalarını düzeltmek için kullanılır.
2D Projeler: Genellikle kullanılmaz, ancak belirli efektler için düşünülebilir.
Örnek:
Bir bina modelini alttan yukarıya doğru çekiyorsanız ve bina üst kısımlarda daralıyormuş gibi görünüyorsa, lens kaydırma ayarlarını kullanarak bu perspektif bozulmasını düzeltebilirsiniz.
21. Gate Fit (Kapı Uyum):
Bu ayar, kamera sensör boyutunun ve oyun ekranının (çözünürlüğün) nasıl uyum sağlayacağını belirler. Farklı en-boy oranlarına sahip ekranlarda görüntünün nasıl hizalanacağını kontrol eder.
Seçenekler:
Vertical (Dikey): Sensörün yüksekliği, ekranın yüksekliğine uyacak şekilde ayarlanır.
Horizontal (Yatay): Sensörün genişliği, ekranın genişliğine uyacak şekilde ayarlanır.
Fill (Doldur): Sensör, ekranı tamamen dolduracak şekilde ayarlanır; bu, görüntünün bazı kısımlarının kesilmesine neden olabilir.
Overscan (Taşma): Sensör, ekranın ötesine taşacak şekilde ayarlanır; bu, görüntünün bazı kısımlarının görünmemesine neden olabilir.
None (Yok): Hiçbir uyum ayarı yapılmaz; varsayılan ayarlar kullanılır.
Kullanım Alanları:
3D ve 2D Projeler: Farklı ekran boyutlarına ve en-boy oranlarına sahip cihazlarda görüntünün nasıl hizalanacağını kontrol etmek için kullanılır.
Örnek:
Bir oyununuzun hem 16:9 hem de 4:3 en-boy oranına sahip ekranlarda doğru görünmesini istiyorsanız, Gate Fit ayarlarını kullanarak görüntünün her iki ekranda da istenilen şekilde hizalanmasını sağlayabilirsiniz.
22. Physical Camera (Fiziksel Kamera):
Bu ayar, kameranın gerçek dünya kamera özelliklerini simüle etmesini sağlar. Odak uzaklığı, sensör boyutu ve lens kayması gibi ayarlarla daha sinematik ve gerçekçi görüntüler elde edebilirsiniz.
Kullanım Alanları:
3D Projeler: Sinematik sahneler veya gerçekçi kamera hareketleri için kullanılır.
2D Projeler: Genellikle kullanılmaz, ancak belirli efektler için düşünülebilir.
Örnek:
Bir sinematik sahnede, fiziksel kamera ayarlarını kullanarak derinlik alanı efekti oluşturabilir ve sahneye daha profesyonel bir görünüm kazandırabilirsiniz.