• C# İpuçları

    Tekrardan merhabalar,

    Bu derste, C#’ta kod yazarken faydalandığım çeşitli özelliklerden bahsedeceğim. Bu özelliklerden bazıları, benim vereceğim örneklerden çok daha geniş kapsamlılar. İlginizi çekenleri ayrıca araştırabilir veya sorularınız olursa sorabilirsiniz. Hızlıca derse başlayalım!

    Devamını oku…
  • Merhabalar,

    Unity’de play mode’a her girişimizde (play tuşuna her bastığımızda) bir süre bekliyoruz. Projenin büyüklüğüne göre bu birkaç saniye de sürebilir onlarca saniye de. Configurable Enter Play Mode ayarlarıyla oynayarak bu süreyi devasa oranda düşürüp, play mode’a neredeyse anında girebileceğinizi biliyor muydunuz? O halde bu optimizasyon neymiş yakından bakalım!

    Devamını oku…
  • Yeniden merhabalar,

    Unity’de karmaşık bir UI hiyerarşisine sahip olduğunuzda, Scene panelinden belli bir UI objesini seçmek için defalarca kez objenin üzerine tıklamanız gerekebilir. Bu süreci kolaylaştırmak adına bir editör script yazdım:

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

    Artık Scene panelde bir UI objesinin üzerine sağ tıklayarak, o konumda yer alan tüm UI objelerini bir listede görebilir ve istediğinizi kolayca seçebilirsiniz.

    Başka derslerde görüşmek dileğiyle!

  • Uzun bir aranın ardından tekrardan merhabalar,

    Unity’de bazen elinizdeki bir sprite için 1024 piksel gereksiz büyük, 512 piksel ise fazla küçük kalıyor olabilir ve sprite’ı bu iki değer arasında bir çözünürlüğe düşürerek, build boyutunu olabildiğince optimize etmek istiyor olabilirsiniz. Orijinal sprite’ı bir resim editöründe yeniden boyutlandırmaya gerek kalmadan, doğrudan Unity içerisinden bunu başarabilmek için basit bir editör script’i yazdım:

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

    Ardından Window-Custom Max Size Setter penceresinden, seçili sprite’ların Max Size değerlerini istediğiniz gibi ayarlayabilirsiniz. ASTC harici sıkıştırma (compression) yöntemlerinde, 2’nin veya 4’ün katı olmayan resimlerin boyutu çok fazla yükselebilir. Bunun önüne geçmek için sprite’larınızı Sprite Atlas‘lara dahil etmeniz yeterli. Aksi taktirde bu yöntem faydadan çok zarar verebilir.

    Sağlıcakla kalın!

  • Yeniden merhabalar,

    Asset Store’dan projenize import ettiğiniz veya ekibinizdeki grafikerlerden aldığınız Texture’ların bazen tek bir tanesinin bile onlarca MB (ender durumlarda yüzlerce MB) yer kapladığına şahit olabilirsiniz. Bu durum genelde resmin sıkıştırılmamış TIFF veya TGA gibi bir formatta olmasından kaynaklanır. Bu resimleri PNG‘e çevirerek, kalitede hiçbir bozulma olmadan bu dosyaların boyutlarını ciddi miktarlarda düşürebilirsiniz. Örneğin ben Asset Store’dan import ettiğim bir 3D asset’in bu tarz Texture’larını PNG’e çevirerek, projenin boyutunu 1.08 GB’dan 510 MB’a kadar düşürdüm. Yanlış anlaşılma olmasın: Texture’ların sadece Unity projesinde kapladığı alan düşüyor, build alınan oyunun boyutu değişmiyor. Ama bu bile, projenin harddiskinizde daha az yer kaplaması veya projenin daha kolay yedeklenebilmesi gibi konularda yardımcı oluyor.

    Bu iş için yazdığım editör script’ini görmek için yazının devamını okuyabilirsiniz…

    Devamını oku…
  • Merhabalar,

    Bir Unity projesinde birden çok kişi çalışıyorsanız, aynı asset’in projeye birden çok kez eklendiğine şahit olabilirsiniz. Bu da projenin boyutunun gereksiz yere büyümesine sebep olabilir. Projedeki hangi asset’lerin birbirinin klonu olduğunu bulabilmek için, basit bir editör script’i yazdım:

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

    Ardından Window-Duplicate Asset Detector ile Duplicate Assets penceresini açıp Refresh butonuna tıklayabilirsiniz. Burada dikkat etmeniz gereken 3 nokta var:

    • Hangi asset’lerin birbirinin klonu olduğunu bulabilmek için, script her asset’in hash’ini çıkarıp bu hash’leri birbiri ile kıyaslıyor. Çok ender de olsa, farklı asset’lerde hash çakışması olabilir ve klon olmayan asset’ler klon gibi listelenebilir. İlaveten, script sadece hash’lere baktığı için, asset’lerin import ayarlarına bakmıyor. Bu duplicate asset’lerin import ayarlarını siz kendiniz kontrol etmeli ve hangi duplicate asset’lerin gereksiz olduğuna ona göre karar vermelisiniz.
    • Listelenen konumlardan birine çift tıklarsanız, o konumdaki asset otomatik olarak seçilir.
    • Duplicate asset’lerin önizlemelerinden birine tıklarsanız, o duplicate asset’lerin hepsi otomatik olarak seçilir.

    Başka derslerde görüşmek üzere!

  • Unity LOD Sistemi

    Hepinize merhabalar,

    Bu derste, Unity‘nin LOD (Level of Detail) sistemini göreceğiz. Bu sistem, yüksek poligonlu bir modelin kameradan uzaklaştıkça daha az poligon ile ekrana çizilmesini sağlayarak oyunun performansını artırır.

    Hızlıca derse başlayalım…

    (daha…)

Son Yorumlar