Unity 2022.1 Tech Sürümü 10 Haziran 2022 itibariyle yayında. Biz de bu yazımızda bu sürümle gelen yenilikler, güncellemeler neler, beraber göz atalım istedik. Öncelikle Tech sürümünden kastedilen ne, bunu belirtmekte fayda var.
Tech olarak adlandırılan sürümler, LTS yani Long-Term Support, Türkçesi ile uzun süre desteklenecek sürümler öncesinde, bu yeni sürümler gelen özellikleri, güncellemeleri erkenden deneme imkanı sağlayan sürümlerdir. Tabii ki bu sürümler hâlâ geliştirme aşamasında olduğundan, kullanıcılar tarafından varolan hataların farkedilip, geri bildirim alınmasını da sağlamakta. Böylece severek kullandığımız Unity, hepimizin dönütleriyle çok daha iyi hale geliyor.
Unity’nin bugün varolan haline gelmesinde de bu dönütlerin etkisi fazla. Örneğin, orjinal blog yazısını incelerseniz, Unity RoadMap üzerinden 7600 bildirim ve Unity forumları üzerinden 5000 gönderi, bu sürüm geliştirilirken dikkate alınmış. Bu arada kesinlikle Unity RoadMap sayfasını takip etmenizi öneririm, buradan siz de gelecek özellikler ve güncellemelere dair önerilerde bulunabilir veya hali hazırda planlanan güncellemelerin sizin için ne kadar önemli olduğunu belirtebilirsiniz.
Bahsettiğimiz bu dönütler sayesinde bu sürümde 280 farklı iyileştirme ve 70’in üzerinde yeni özellik olduğu bahsedilyor. Bu yazımızda iyileştirme ve yeni özelliklerden göze çarpanları ele alıp sizinle paylaşacağız.
Daha Esnek Bir Editor
Şayet Youtube kanalımızı takip ediyorsanız, Unity’nin sunduğu editör araçlarını ve bunların özelleştirilebilirliğini ne kadar sevdiğimi ve ne kadar hayran olduğumu bilirsiniz. Kullandığımız araçların bize azıcık bile açık olması çok sevdiğim bir özellik. Ki Unity bunu bize fazlasıyla sunuyordu bu vakte kadar. Tabii ki bu haliyle durmayıp, bize daha esnek bir editör sunmaktan geri kalmıyorlar.
Unity 2022.1 Tech Sürümü ile artık UI Toolkit daha fazla özelliğe sahip. Bilmeyenleriniz için ufak bir özet geçmek gerekirse, UI Toolkit bazılarınız tahmin edebileceğiz üzere bir kullanıcı arayüzü (User Interface) aracı. Altyapısını incelediğimizde daha öncesinde özellikle Unity editörünü genişletirken, kendi editör arayüzlerimizi oluştururken kullanılırken artık geliştirdiğimiz oyunlar içerisinde de kullanabiliyoruz. 2022.1 sürümü ile beraber ayrıca Vector çizim için API güncellemesi, editörü özelleştirmek için kullandığımız Property Drawer ve Property Attributes özellikleri ve arayüz düzenlemelerinde dallandırılmış arayüzde çoklu sütun görünümü desteği bulunuyor. Henüz Youtube kanalımızda veya sitede yer vermedik ancak merak ediyorsanız Property Drawer ve Property Attributes konuları hakkında içerik geliştirmemizi isterseniz, istediğiniz herhangi bir içerik için geçerli olduğu gibi, yorum kısmında veya Discord kanalımızdaki içerik önerileri bölümünde öneride bulunabilirsiniz.
VE SONUNDA, SPLINE EDITOR GELDI. Spline aracı bu sürümde henüz direkt olarak sürüm içerisinde dahil değil, ancak paket olarak indirilebilir halde. Spline aracı basitçe bir yol oluşturmamıza ve bu yolu çeşitli şekillerde kullanmamızı sağlıyor.
Tabii ki buna benzer araçlar Unity Asset Store üzerinde hali hazırda bulunuyor, hatta ücretsiz olanlar var. Örneğin Sebastian Lague’un geliştirdiği Path Creator bunlardan biri. Hatta Youtube kanalımızda bu tarz yolları nasıl kullanabileceğimize dair bir örnek de oluşturmuştuk.
Yeni Spline aracı şu anda içerisinde basitçe belli noktalar belirleyip bunların birleşmesiyle bir yol elde etmemizi sağlıyor. Bu araç üzerinden oluşturduğumuz yolu bahsettiğimiz noktalar aracılığıyla manipüle edip istediğimiz şekle sokabiliyoruz. Yolu oluşturan nokta veya Unity’nin tabiri ile düğüm (Knot) konumlarının ayarlanması aslında çok sorun değil. Asıl sorun olabilecek konu, 2 düğüm arasında yolun yine nasıl ilerleyeceğini belirlemek, o bölgedeki tangent değerini değiştirmek. Bunun için Spline aracı içerisinde Catmull Rom algoritması ile otomatik hesaplama yaptırabilir, Bezier Curve algoritması ile elle bu iki düğüm arasında kontrolü sağlayabilir veya Linear seçeneği ile iki düğüm arasındaki yolu bir çizgi olarak düz hale getirebiliriz. Kesinlikle Spline paketini indirip biraz kurcalamanızı öneririm, her zaman dediğimiz gibi bazı şeyleri boza boza nasıl çalıştığını öğreniriz, çekinmeyin 🙂
Bir yeni özellik de materyal tarafında geliyor. Özellikle kodlama üzerinden materyal oluşturanlar için, Material API artık bütün materyal değişkenlerini kapsıyor, keyword states desteği, HDRP diffusion proffileri ve IES ışıklandırma desteğiyle procedural materyal kullanımı hem editör hem de oyun içi kullanımlar da geliştirilmiş durumda.
Ve son olarak, Unity File System altyapısı özellikle Asset Bundle görselleştirme ve analizleri için araç geliştirmelerinize imkan sağlaması amacıyla editör’e dahil edilmiş durumda.
Daha Gelişmiş Üretkenlik
Herhangi bir iş yaparken, kullandığımız araçların kapasitelerine bağlı haldeyizdir. Özellikle proje geliştirme adımlarında her bir adımda hızlıca ilerleme, tekrar tekrar göz atma adımlarında, kullandığımız araçların becerileri üretkenliğimizi ve hızımızı etkiler. Unity de bu konunun farkında olduğu için, özellikle her güncellemesinde bu durum için editör’ün üretkenlik becerilerini arttıracak eklemeler yapıyor.
Unity 2022.1 Tech Sürümü de daha gelişmişlik üretkenlik açısından yeni özelliklerle yayında. Bunlardan belki de en öne çıkanı, materyal varyantları (Material Variants) oluşturma imkanı. Materyal varyantlarını bir nevi prefablar gibi düşünebiliriz. Farklı renklerde ancak aynı normal, metallic vb diğer bütün özellikleri ortak objeleriniz olduğunu düşünelim. Daha önce varolan haliyle, her biri için ayrı bir materyal yaratmamız gerekiyordu. Ve örneğin, normal değerini değiştirmeye kalktığınızda, yarattığınız her bir materyal üzerinde bunu yapmak zorunda kalıyorduk. Materyal varyantları ile bu yükten kurtuluyoruz.
Bir material yaratıp sonrasında bunun farklı özelliklere sahip varyantlarını yarattığımızı düşünelim. Başlangıçta bir normal map ataması yaptık ve projemize devam ettik. İlerleyen süreçte materyali ve varyantları kullandığımız obje bir güncelleme aldı ve yeni bir normal map eklememiz gerekti. Kaynak olarak kullandığımız, yani ilk yarattığımız materyal üzerindeki normal map değişkenini güncelleyerek kolayca işimizi halledip projeye devam edebileceğiz. En basit haliyle tam olarak prefab yapısındaki varyant olayıyla benzer şekilde çalışıyor. Özellikle projeniz büyüdüğünde, bu tarz editör becerilerinin size çok daha gelişmiş üretkenlik imkanı sunduğunu görebilirsiniz.
Projenin büyüklüğünden bahsetmişken, yeni güncellemelerden biri projedeki dosyalar arasında kaybolmamak için bir çözüm sunuyor. Unity 2022.1 Tech Sürümü, 2021 ile gelen gelişmiş arama sayfası için daha fazla filtreleme kategorisi ve daha gelişmiş filtreleme imkanlarıyla yayında. Örneğin sahnenizde belli bir vertex sayısının üstündeki modelleri bulmak istiyorsunuz, Mesh Filter içeren objeleri ve mesh değişkenindeki vertex sayısının belirttiğiniz sayıdan daha fazla olduğu objeleri filtrelemeniz mümkün. Veya aynı şekilde, animasyon oynattırılabilen, yani Skinned Mesh Renderer içeren objeleri de bu şekilde filtreleyebilirsiniz. Bu aramaları tabii ki sadece sahne içinde değil, dosyalarınız içerisinde de rahatlıkla kullanabilirsiniz. Örneğin, belli bir klasör altındaki resim dosyalarını bulmak için filtreleme oluşturmanız mümkün. Resimden kastettiğimiz tabii, Unity arayüzüne sahip olanlar için Texture veya Sprite gibi dosyalar.
Unity 2022.1 Tech Sürümü Sprite konusunda da yeni güncellemelere sahip. Örneğin özellikle Photoshop üzerinden yaptığınız çalışmalarda, .psd uzantı dosyalarını direkt olarak içerik aktarabiliyor. Tabii sadece tek sunulan bu dosyaları içeri aktarmak değil, aynı zamanda Photoshop içerisindeki katmanlarınızı (layer) da içeri aktarabilmek. Bu sayede görsel içeriğinizi oluşturan sanatçınızın çalışmasını, aynı Photoshop üzerinde sahip olduğu hiyerarşik yapıyla Unity içerisinde kullanmaya başlayabilirsiniz. Ayrıca içerik aktarma esnasında yalnızca istediğiniz katmanların projeye dahil edilmesini de sağlayabilirsiniz.
2 boyutlu taraf için bir yeni özellik de, Delaunay Tesselation algoritmasının desteklenmesi. Bu özellik aslınde özellikle 2 boyutlu fizik işlemleri için daha hassas bir temas/çarpışma algılama (collision detection) için gerekli şeklin-ana hattın oluşturulmasında kullanılıyor. Daha öncesinde özellikle çok ince veya ufak parçalar fizik motoru tarafından yok sayılabiliyordu. Deluanay Tesselation algoritması ile hem bu parçalar daha düzgün hesaplanabiliyor hem de daha az polygon kullanılarak oluşturulabiliyor.
Nispeten basit diğer güncelleme de Package Manager tarafından geliyor. Bu sürüm ile beraber artık birden fazla paketi seçip toplu işlemler yapmamız mümkün hale geliyor. Çok büyük bir özellik değil belki ama hoş bir detay olmuş ve hızlanma konusunda fayda sağlayacağı kesin.
Detayına çok fazla girmeyeceğimiz diğer güncellemeler ise şöyle:
- Play moduna geçiş daha hızlandı, Texture ve ufak dosyaları içeri aktarmak neredeyse %60 civarında hızlandı.
- Geri Alma (Undo) ve Tekrar Yapma(Redo) işlemleri için daha kullanışlı bir arayüz sağlandı.
- Shortcut Manager üzerinde geliştirmeler yapıldı.
Detaylı Performans İncelemeleri
Oyun geliştirme aşamasında önemli şeylerden biri de yarattığınız oyunun genel olarak nasıl performansa sahip olduğundan haberdar olmak.
Frame Timing Manager ile artık işlemci ve ekran kartı tarafında her bir kare (frame) hakkında harcanan süre ve zamanlamaları geniş çaplı şekilde erişmek ve kaydetmek mümükün hale geliyor. Bu aracı editör içerisinde kullanmanız ve platformdan bağımsız olarak, daha detaylı bilgilerle performans darboğazlarını düzenlemeniz mümkün.
Rendering Debugger üzerinden de gelen bir güncelleme ile, Frame Stats Profiler üzerinden bir sahnenin her bir karede işlemci veya ekran kartına bağımlı, yük oluşturup oluşturmadığını ve her bir kare(frame) üzerindeki zaman hesaplamalarının da detalyarını görebiliyoruz. Bu özelliği istersek editör içerisinde istersek de build aldığımız uygulamamız içerisinde kullanabiliriz.
Platform Bazlı Optimizasyonlar
Unity PC, Xbox, Android, IOS gibi çeşitli platformlarda çıktı almamıza imkan sağlıyor bildiğiniz üzere. Tabii ki her platformun kendine has özellikleri, güncellemeleri bulunuyor. Bu platformlara aldığımız çıktılarda iyileştirmelerin ve optimizasyonların olması da biz geliştiriciler için önemli bir mesele.
Android tarafında performans arttırmak için Samsung marka cihazlarda Adaptive Performance 4.0 teknolojisinden faydalanabilmeniz mümkün. Adaptive Performanca ile cihazın ısısı, batarya durumu gibi bilgileri elde edip, bu bilgilerden faydalanarak oyununuzu daha az yük oluşturacak şekilde çalışacak hale indirebilirsiniz. Böylelikle daha uzun süre sabit bir fps elde etmeniz mümkün olabilir. Ayrıca görsel programlama (visual scripting) tarafında da Adaptive Performance ile ilgili yapılar eklenmiş durumda.
Ayrıca ARM çipseti kullanan cihazlarda da System Metric Mali paketi ile daha donanım seviyesinde performans bilgileri elde etmeniz mümkün hale geliyor. Package Manager üzerinden “Read GPU Metric” örneğini indirerek inceleyebilirsiniz.
IOS tarafında da “incremental build pipeline” adı verilen, daha önce aldığınız çıktı (build) üzerinden farklı olan kısımları algılayıp yalnızca bu kısımların rebuild işlemine tabii tutulmasını sağlayan bir özellik gelmiş bulunmakta.
Ve son olarak konsol cihazları tarafında kararlılık üzerine yapılan çalışmalara ek olarak, Xbox tarafında yine IOS’ta olduğu gibi ”incremental build pipeline” özelliği eklenmiş durumda.
Genel olarak Unity 2022.1 Tech Sürümü bu bahsettiğimiz özelliklerle beraber yayında. Bütün güncelleme ve değişimleri incemek isterseniz “Release Notes” linkine bakmanızı öneririm. Unity’nin biz geliştiriciler için sunacağı yeni imkanları tam kararlı sürümlerde de görmeyi her zaman 4 gözle bekliyorum. LTS sürümlerinde ne gibi yenilikler göreceğiz bakalım. Yeni yazılarda görüşmek dileğiyle, hoşça kalın.