‘UNITY 3D’ Kategorisi için Arşiv

Unity Çerez Ders: Kameranın Yatay Görüş Alanını Sabitlemek

Yayınlandı: 12 Eylül 2020 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

Merhabalar,

Unity‘de varsayılan olarak kameranın dikey görüş alanı sabittir. Yani mevcut çözünürlükte ekranın alt ve üst kenarlarında hangi objeleri görüyorsanız, diğer tüm çözünürlüklerde de o objeleri aynı yerlerinde görürsünüz. Kameranın dikey görüş alanı sabit olduğu için haliyle yatay görüş alanı çözünürlükle beraber değişir. Mesela bir objeyi ekranın tam sol kenarında kalacak şekilde özene bezene yerleştirirsiniz ama bir bakarsınız ki diğer ekran çözünürlüklerinde obje hiç gözükmüyor ya da ekranın sol kenarından çok uzakta kalıyor.

Bu duruma müdahale edebilmek için, ekranın dikey değil de yatay görüş alanının sabit kalmasını sağlayan script’imi paylaşacağım:

Yapmanız gereken, projenizde HorizontalCamera adında yeni bir C# script oluşturmak ve script’in içeriğini şuradaki kodla değiştirmek: https://gist.github.com/yasirkula/a0df635b24b2e4503090c148567392fd

Ardından script’i kamera objenize component olarak verip Field of View veya Orthographic Size değerlerini kendinize göre ayarlayabilirsiniz.

Sonraki derste görüşmek üzere!

Unity Çerez Ders: UI’da Gradient Obje Oluşturmak

Yayınlandı: 11 Eylül 2020 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

Tekrar merhabalar,

Unity‘nin UI sisteminde gradient renkli grafikler oluşturmak için (herhangi bir Texture kullanmadan) yazdığım ufak bir script’i paylaşacağım. Ancak 4 köşesi farklı renkli gradient’lerde script her zaman çok iyi sonuç vermiyor bilginiz olsun:

Üstteki animasyonda gif compression’ından dolayı ufak bir grafik hatası var.

Yapmanız gereken, projenizde GradientGraphic adında yeni bir C# script oluşturmak ve script’in içeriğini şuradaki kodla değiştirmek: https://gist.github.com/yasirkula/7f34c2e190330da41edcca6b383490ff

Ardından Canvas‘ınızdaki içi boş bir GameObject’e Gradient Graphic component’ini eklemeniz yeterli.

Sonraki derslerde görüşmek üzere!

Unity Çerez Ders: UI’da Daire/Elips Göstermek

Yayınlandı: 10 Eylül 2020 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

Merhabalar,

Bazen Unity‘nin UI sisteminde, her çözünürlükte keskin kenarlara sahip daireler göstermek isteyebilirsiniz. Bunun için çok yüksek çözünürlüklü bir daire sprite’ı veya özel shader’lar kullanabilirsiniz. Alternatif olarak, şimdi paylaşacağım script’i kullanabilirsiniz:

Yapmanız gereken, projenizde CircleGraphic adında yeni bir C# script oluşturmak ve script’in içeriğini şuradaki kodla değiştirmek: https://gist.github.com/yasirkula/d09bbc1e16dc96354b2e7162b351f964

Ardından Canvas‘ınızdaki içi boş bir GameObject’e Circle Graphic component’ini eklemeniz yeterli.

Sonraki derste görüşmek üzere!

Tekrardan merhabalar,

Birkaç gün boyunca, Unity için çerez kıvamında çok kısa dersler paylaşacağım. Bu ilk derste, Project panelindeki açık olan (solundaki ok genişletilmiş olan) tüm klasörleri otomatik olarak kapatmaya yarayan editör script’imi paylaşacağım.

Özellikle büyük projelerde, Project panelinde çok fazla klasör açık iken istediğim klasörü bulmak çok vaktimi alabiliyor. Bu durumda, yazdığım script ile tüm klasörleri kapatarak dosya kalabalığına son veriyor ve istediğim klasörü daha hızlı bir şekilde bulabiliyorum:

Yapmanız gereken, projenizin Editor klasöründe (bu klasör yoksa oluşturun) EditorCollapseAll adında yeni bir C# script oluşturmak ve script’in içeriğini şuradaki kodla değiştirmek: https://gist.github.com/yasirkula/0b541b0865eba11b55518ead45fba8fc

Ardından Project veya Hierarchy panellerinde herhangi bir yere sağ tıklayıp Collapse All demeniz yeterli. İsterseniz Inspector‘da herhangi bir component’e sağ tıklayıp Collapse All diyerek de tüm Component’leri simge durumuna küçültebilirsiniz.

EKSTRA: Project panelinde tek bir klasörün içindeki tüm açık klasörleri kapatmak istiyorsanız, Alt tuşuna basılı tutarken klasörün solundaki oka tıklayabilirsiniz.

Sonraki derste görüşmek üzere!

Visual Studio’da Faydalandığım Kısayollar

Yayınlandı: 08 Eylül 2020 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

Merhabalar,

Bu kısa derste, Unity‘de Visual Studio Community Edition 2017/2019 ile C# script yazarken kullandığım birkaç klavye kısayolundan bahsedeceğim.

Hemen derse başlayalım…

(daha&helliip;)

Yeniden merhabalar,

Unity‘de bazen bir Texture‘un hangi materyallerde kullanıldığını veya sahnedeki bir objenin hangi public değişkenlere değer olarak verildiğini bulmak isteyebilirsiniz. Bu gibi durumlar için çok eskiden yazdığım ama sürekli güncel tuttuğum bir plugin’i paylaşacağım: Asset Usage Detector.

Asset Store: https://assetstore.unity.com/packages/tools/utilities/asset-usage-detector-112837

Alternatif Link: https://github.com/yasirkula/UnityAssetUsageDetector/releases

Detaylar için yazının devamını okuyabilirsiniz…

(daha&helliip;)

Unity Shader Boyutu Optimizasyonu

Yayınlandı: 06 Eylül 2020 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

Merhabalar,

Daha önce Unity projenize gerek Asset Store‘dan gerekse başka bir yerden büyükçe bir shader paketi eklediyseniz, oyunun hem build alma süresinin hem de boyutunun ciddi anlamda arttığına şahit olmuş olabilirsiniz. Ben bu duruma Toony Color Pro 2 asset’ini projeme eklediğimde denk geldim: beraberinde gelen shader, Unity’nin tüm scriptable render pipeline‘larını destekliyordu: LWRP/URP, HDRP ve varsayılan olarak gelen built-in. Ben LWRP/URP veya HDRP kullanmadığım halde shader bu render pipeline’lar için de build alınıyordu ve build boyutu 50 MB artıyor (iOS), build süresi de 1 saat uzuyordu (build alınan shader’lar cache’lendiği için sonraki build’lerde bu süre tabi ki çok daha kısa oluyor).

Bu durumla ilgili napabilirim derken Unity’nin şu blog yazısına denk geldim ve oradan öğrendiğim teknikle bir editör script’i yazdım: https://gist.github.com/yasirkula/d8fa2fb5f22aefcc7a232f6feeb91db7

Bu editör script’i, shader’larımdaki kullanmadığım özellikleri kapatıyor ve shader’ların boş yere LWRP/URP ve HDRP için build alınmasının önüne geçiyor (bu işleme shader stripping deniyor). Bu şekilde build sürem birkaç dakikaya indi ve build boyutu ise shader’ın farkına varılmayacak düzeylere düştü.

Daha fazla bilgi için yazının devamını okuyabilirsiniz…

(daha&helliip;)

Unity Oyunlarınızdan Screenshot’lar Almak (Editör İçerisinden)

Yayınlandı: 08 Ağustos 2020 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

Yeniden merhabalar,

Zaman zaman, Unity içerisinde oyununuzdan hızlıca bir screenshot alma ihtiyacı duyabilirsiniz. Veya oyununuzun Google Play/App Store sayfası için farklı çözünürlüklerde birden çok screenshot almanız gerekebilir. Bu gibi durumlar için bir editör arayüzü yazdım ve bu derste de bu arayüzü paylaşacağım.

Link: https://gist.github.com/yasirkula/fba5c7b5280aa90cdb66a68c4005b52d

Kullanım detayları için yazının devamını okuyabilirsiniz…

(daha&helliip;)

Unity Remote Inspector Kullanımı

Yayınlandı: 24 Mayıs 2020 yasirkula tarafından Oyun Tasarımı, UNITY 3D içinde

Yeniden merhabalar,

Bu kısa derste, Unity 3D için ücretsiz Remote Inspector asset’ini tanıtacağım. Bu asset sayesinde, build aldığınız bir oyunu cihazda test ederken, oyunun Inspector ve Hierarchy‘sine Unity editöründen erişip anlık değişiklikler yapabilirsiniz. Örneğin sahnedeki objeleri kapatıp açabilir veya istediğiniz bir component’in değişkenlerine müdahale edebilirsiniz. Oyununuzu debug ederken veya performansı etkileyen objeleri deneme-yanılma yoluyla bulurken bu asset işinize yarayabilir.

Hazırsanız başlayalım!

(daha&helliip;)

GÜNCELLEME (10.08.2022): Yazı Unity Ads’in en son sürümüne uygun olarak güncellendi.

Hepinize merhabalar,

Bu dersimizde, Android ve iOS için yaptığınız Unity oyunlarınıza, Unity Ads ile nasıl banner, interstitial (tam ekran, geçilebilir reklam) ve rewarded (ödüllü) reklam ekleyebileceğinizi göstereceğim. Alternatif bir reklam servisi olan AdMob entegrasyonu için ise şu dersime bakabilirsiniz: https://yasirkula.com/2014/05/26/unity-3d-android-oyunlariniza-admob-reklamlari-eklemek-resimli-anlatim/

Dilerseniz AdMob ile Unity Ads’i beraber kullanabilirsiniz. Eğer ilgileniyorsanız, AdMob dersimdeki mediation kısmına bakabilirsiniz. Bu durumda bu derse bakmanıza gerek yok.

Eğer henüz Android SDK‘yı kurmadıysanız, sizi önce şuraya alayım: https://yasirkula.com/2013/07/17/unity-android-sdk-kurulumu-resimli-anlatim/

Yazıyı yazarken faydalandığım kaynak: https://docs.unity.com/ads/UnityDeveloperIntegrations.html

(daha&helliip;)