Etiket: Unity3d

Singleton Design Pattern

Singleton’ı şu iki maddede özetleyebiliriz. Bir sınıfın bir örneği olacağını garanti eder. Bu sınıfı global bir erişim noktası yapar. Bir design pattern’ı kullanmadan önce onun zayıf yanlarını iyi bilmek gerek. Profesyonel hayatta, her yanından Singleton fışkıran kodlara gülündüğüne bir çok kez şahit oldum. Bu kahkahaların sebebini araştırırken okuduğum ve içlerinden notlar aldığım bir kaç yazı var. Singleton’ı uygulamadan önce bu notları sizlerle paylaşmak isterim. Use Your Singletons Wisely (Singletonlarınızı Bilgece Kullanın) Yazı, neyin gerçekten Singleton olması gerektiğini sorguluyor. Bu sorgulamayı yapmadan önce, Singleton’ın sınıflar arası bağımlığı artırdığını belirtiyor. Yani Singleton’ın göründüğü kadar masum olmadığı konusunda yazar ile aynı fikirdeyiz. Yazının

Okumaya devam et

Command Design Pattern

Bu yazıma başlamadan önce, eğer okumadıysanız acilen okumanız gereken bir kaynak önermek istiyorum; “Robert Nystrom – Game Programming Patterns“. Bu kitapta, oyun dünyasındaki genel problemleri çözmek için kullanılan design pattern’lardan oldukça detaylı olarak bahsediliyor. Senaryo 20×20 birimlik bir tabanın üzerinde, her seferinde bir birim olmak üzere aşağı, yukarı, sağa ve sola hareket edebilen bir küp düşünün. Bu kübün her hareketi, geri alınabilir olsun. Yani küp “yukarı, yukarı, sol, sol” hareketini tamamladıktan sonra, her “geri al” komutu verildiğinde, “sağ, sağ, aşağı, aşağı” komutlarını tekrarlayarak, başlangıç noktasına dönsün. Adım 1 – Command Design Pattern’a Giriş Command Design Pattern’da, isteklerimizi komut nesneleri olarak

Okumaya devam et

Observer Design Pattern

Observer Design Pattern (Gözlemci Tasarım Deseni), iki ana bileşenden oluşur; Subject ve Observer… Subject, üzerinde değişimlerin gözlendiği, gözlenmek istendiği bileşendir. Observer ise bir subject’teki değişimleri gözlemlemek için kullanılan bileşendir. Observer Design Pattern’da, bir subject’teki değişimden, onu gözleyenler haberdar edilir. Observer Pattern’ı bir başarımlar sistemi kurmak için kullanabiliriz. Buna yönelik bir senaryo belirleyip, bu senaryoyu Observer Design Pattern kullanarak çözelim. Senaryo Oyunumuzda bir skor verisi olduğunu düşünelim. Bu skor verisindeki değişiklikleri gözleyen 3 adet de başarımımız olsun. Başarımlarımız kendi hedef skorlarına geldiklerinde açılsınlar ve başarılmış olsunlar. Adım 1 ScoreDataSubject isimli bir nesne oluşturalım. Bu nesne, dinleyeceğimiz nesne. Bütün observer’larımız, bu nesneye

Okumaya devam et

AudioSource.PlayClipAtPoint: Perde Arkasında Neler Oluyor?

Küçük aralıklarla, küçük sesleri çalmak için kullanılan bir metod; “AudioSource.PlayClipAtPoint(Audio, Position)”. Gelin perde arkasını inceleyelim.

Okumaya devam et

Bir Unity 4.6 UI Nesnesi İle Çalışırken Bilinmesi Gereken 4 Önemli Kural

1 – Bir dünya ekran genişliği var. Peki ben bu ekranın pixel türünden boyutlarını nasıl öğrenebilirim?

Okumaya devam et

Obje Havuzu (Object Pool)

Unity3D’de Nesneleri yaratmanın ve öldürmenin yükü bir hayli ağırdır. Saniyede yüzlerce nesneye bellekte yer açıp, sonra o nesneleri bellekten tekrar silmek, performans penceresinden bakıldığında pek de hoş karşılanmayabilir. Eğer nesne yaratma ve silme işlemini çok sık yapıyorsanız, Object Pool işte tam da burada yardımınıza koşuyor. Senaryo Bir silah nesnesiniz var. Bu silah nesnei bulunduğu noktadan her yöne saniyenin onda biri kadar bir sıklıkla ateş etsin. Mermiler ekrandan çıktıklarında silinsinler. Adım 1 Senaryomuzu gerçeklemeye, bullet nesnemizi oluşturarak başlayalım. Bullet nesnesini bir Sphere nesnesine ataç ediniz ve bu nesneyi bir prefab haline getiriniz. Bullet

Bullet nesnemizin Transform component’ini bir _transform değişkeni

Okumaya devam et

Ondalık Sayıların Ondalık Kısımlarını Yuvarlama

Bazı ondalık sayıların ondalık kısımları can sıkabiliyor. Örneğin size gereğinden fazla hassasiyetle pozisyon döndüren bir fonksiyon… Bu fonksiyon size ondalık kısmı yalnızca 1 haneden oluşan sayılar döndürsün isteyebilirsiniz. Bunu da System.Math.Round(double number, int digits) fonksiyonu ile kolayca yapabiliyoruz. Sözü fazla uzatmadan mouse’umuzun pozisyonunu yuvarladığımız örneğimizi paylaşalım.

Okumaya devam et